如果这个问题的答案很明显,我们深表歉意!我试图在一个类的构造函数中用数字数组初始化字段号,然后在我的测试类中调用它,并将其显示为字符串,但它会不断返回null ..任何帮助将不胜感激!

这是我的具有构造函数的类:

public class NumerbList implements Number {
    ArrayList<Number> numbers = new ArrayList<Number>();

    //constructor taking array of type double as parameter
    public NumberList(Double[] numberlist){
        for(int i=0; i<numbers.size(); i++){
            NumberDouble numberd = new NumberDouble(numberlist[i]);
            numbers.add(numberd);
        }
    }


和创建NumberList类对象的测试类

public class Test {
    public static void main(String[]args){
        Double[] d = {2.4, 3.6, 4.3, 5.1};
        NumberList numbers = new NumberList(d);
        numbers.neg();

        System.out.print(numbers.asString());
    }
}


抱歉,如下:

public void neg(){
    for(int i=0; i < numbers.size(); i++){
            numbers.get(i).neg();
    }
}


和asString是:

@Override
public String asString(){
    return numbers.toString();
}


我应该放

     for(int i=0; i < numberlist.length(); i++;)


否定?
提前致谢!

最佳答案

问题是您的for循环使用初始化的空ArrayList作为大小。

将您的循环更改为此:

for (int i = 0; i < numberlist.length; i++) {
    // your loop logic here
}


希望有帮助!

09-12 13:16