【问题标题】:Cannot store to object array because "this.share" is null [duplicate]无法存储到对象数组,因为“this.share”为空 [重复]
【发布时间】:2021-03-17 21:34:43
【问题描述】:

我必须创建一个对象数组,但我不知道为什么它每次都实例化为 null。类的构造函数不是空的,它有2个参数,所以我不能用new Share()初始化它。

public class Portfolio {

    private Share[] share;
    private int noShares = 0;

    public Portfolio() {}                                               //constructor

    public void addShare(Share s) {

        share[noShares++] = new Share(s.getValue(), s.getCompany());

    }

我也试过了,还是一样的错误

share[noShares].setValue(s.getValue));
share[noShares++].setCompany(s.getCompany);

这是最后一种方法

    public double computeSum() {

        int sum = 0;

        for(int i = 0; i < noShares; i++) {

            sum += share[noShares].getValue();

        }

        return sum;

    }

}

【问题讨论】:

标签: java arrays oop object


【解决方案1】:

在创建要插入的对象之前,您必须指定数组的大小。现在您正在声明一个没有大小的数组,并且您正在尝试将一个共享对象添加到整个数组中。

public class Portfolio {
    
    //Declare and initialize the Array
    private Share[] share = new Share[Amount of share objects that you want to save];

    //Now you can add the actual objects in the Array
    Share[index] = new Share(int x, int y....);

}

我希望我能够解决您的问题。

【讨论】:

    【解决方案2】:

    试试:

    public class Portfolio {
    
        private Share[] share = new Share[100]; //or whatever number of elements
    
    }
    

    您需要事先为数组实例化/分配内存。

    【讨论】:

    • 还是不行
    猜你喜欢
    • 2022-01-21
    • 2021-11-08
    • 2019-10-18
    • 2021-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    相关资源
    最近更新 更多