我刚刚开始学习如何操作数组列表。
我在计算myArray的总和时遇到了一个小问题 ------> 错误是Operator '+' cannot be applied to 'int', 'java.lang.Object'
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
ArrayList<Integer> myArray = new ArrayList<Integer>();
myArray.add(6);
myArray.add(2);
myArray.add(1);
int x = 0;
Iterator myIterator = myArray.iterator();
while (myIterator.hasNext()){
System.out.println(myIterator.next());
x = x + myIterator.next();
}
}
Run Code Online (Sandbox Code Playgroud)
迭代器应该被参数化。在不指定Integer类型的情况下,编译器会假定未应用java.lang.Object运算符的类型+。
Iterator<Integer> myIterator = myArray.iterator();
Run Code Online (Sandbox Code Playgroud)
从技术上讲,该+运算符不适用于 以外的对象String,但它Integer是原始类型的包装类int。因此,在这种情况下,编译器将拆箱应用于 get int,其中+定义了运算符。