我想创建一个类的实例,该类中具有一个类成员数组,该数组的成员是在初始化时定义长度的。我编写的代码不包含任何预编译错误,但运行后返回nullPointerException。我希望能够通过键入storeA.products [productnumber]。(产品变量)来访问storeA类的产品,这可能吗?

package tinc2;

public class FirstProgram {

    public static void main(String[] args) {
        store storeA = new store();
        storeA.name = "Walmart";
        storeA.products = new store.product[3];
        storeA.products[0].name = "Horses";
        System.out.println(storeA.products[0].name);
    }

    public static class store{
        String name;
        product products[];
        static class product{
            String name;
            int quantity;
            double price;
        }
    }

}

最佳答案

去做

public static void main(String[] args) {
    store storeA = new store();
    storeA.name = "Walmart";
    storeA.products = new store.product[3];
    storeA.products[0] = new store.product();
    storeA.products[0].name = "Horses";
    System.out.println(storeA.products[0].name);
}


代替。

此外,您应该将这些类放在单独的文件中。
您应遵循Java中的命名约定,例如Store代替store
您应该使用getter和setter。

如果可能,我会避免使用static

08-16 17:09