我刚刚开始学习如何操作数组列表。
我在计算myArray的总和时遇到了一个小问题 ------>错误是运算符"+"不能应用于"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();
}
}
迭代器应该被参数化。如果不指定Integer
类型,编译器将假定运算符+
未应用于java.lang.Object
类型。
Iterator<Integer> myIterator = myArray.iterator();
从技术上讲,+
运算符不适用于String
以外的对象,但Integer
是基元类型int
的包装类。 因此,在这种情况下,编译器应用拆箱来获取int
,其中定义了+
运算符。