道歉,如果这个问题的答案显而易见!我试图在一个类的构造函数中用一个数字数组初始化我的字段数,然后在我的测试类中调用它并将其显示为字符串,但它不断返回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++;)
在?中?
提前谢谢!
答案 0 :(得分:2)
问题是你的for循环使用你的初始化空ArrayList作为大小。
将循环更改为:
for (int i = 0; i < numberlist.length; i++) {
// your loop logic here
}
希望有所帮助!
答案 1 :(得分:2)
for(int i=0; i<numbers.size(); i++){
应为for(int i=0; i<numberList.length; i++){
答案 2 :(得分:0)
另请注意,有一种更简单(通常是首选)的方式来迭代您的数组:
for (Double number : numberlist) {
// your loop logic here
}
(我将其作为评论发布,但会丢失代码格式)。