【发布时间】:2019-03-23 06:19:57
【问题描述】:
我是 Java 的初学者,并试图获取 ArrayList 中所有元素的总和。我是通过使用一种方法来做的,并在方法中得到这个错误:
"二元运算符'+'第一种类型的错误操作数类型:int,第二种 类型:对象”
我不知道我在这里做错了什么,感谢任何帮助!
public static int sumNumbers(<ArrayList> numbers){
int sum = 0;
for(int i = 0; i<numbers.size(); i++){
sum+=numbers.get(i);
}
return sum;
}
【问题讨论】:
-
ArrayList numbers应该是ArrayList<Integer> numbers,类型缺失。 -
ArrayListonly 与ArrayList<Object>基本相同(不完全是,但在您的问题的上下文中,您可以这样想)。因此在sum+=numbers.get(i);中,编译器将操作视为int = int + Object。如果您将其更改为ArrayList<Integer>(或更好的List<Integer>),编译器将看到int = int + Integer,并且可以应用自动拆箱来获取int = int + int。 -
或者你必须明确地将其转换为 int
-
@NicholasK 您不能将
Integer对象投射 到int,您需要将其拆箱,例如通过Integer.intValue()或让编译器为您执行此操作。 -
你可以投下来然后调用
.intValue()