繁体   English   中英

运算符“+”不能应用于“int”、“java.lang.Object”

[英]Operator '+' cannot be applied to 'int', 'java.lang.Object'

我刚刚开始学习如何操作数组列表。

我在计算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();
    }
}

迭代器应该被参数化。 不指定Integer类型,编译器假定java.lang.Object类型不应用运算符+

Iterator<Integer> myIterator = myArray.iterator(); 

从技术上讲, +运算符不适用于String以外的对象,但Integer是原始类型int的包装类。 因此,在这种情况下,编译器应用拆箱来获取int ,其中定义了+运算符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM