所以我到了一个网站,里面说Integers不允许用它计算,+ - * /%^等。
但我试过
Integer n=new Integer(8);
n+=2;
Integer m=new Integer(10);
System.out.println(n+m);
它打印出来20.所以我有点困惑。我知道这是一个菜鸟问题,但我真的想得到这个,我不知道我错过了什么。那么这实际上是什么意思“整数不允许用它计算”
感谢。
编辑:@people请求:Site providing accurate information?
答案 0 :(得分:7)
Java 1.5+自动 box (和 unboxes )原始类型 - 它被称为 autoboxing 。
您遇到的网站可能在1.5之前谈过Java:
在Java版本[1.4,编辑]之前的代码中,你必须在原始int和Integer Object之间进行大量的手动繁琐转换,类似于byte / Byte,char / Character,short / Short,长/长,浮动/浮动和双/双。 (http://mindprod.com/jgloss/autoboxing.html)
答案 1 :(得分:1)
该网站可能有点过时......
如果您使用1.4之前的Java版本,那么该语句是正确的,因为您只能在原始类型上使用+运算符(和字符串......这是另一个问题)。
当前(读取,发布Java 1.5),当您尝试对其应用+时,JVM会自动将该Integer对象转换为int。
请记住,如果您尝试将+运算符应用于指向null的Integer对象,则将获取因应用于空对象的取消装箱而导致的NullPointerException。
答案 2 :(得分:-1)
对这些变量使用javascript函数parseInt
。
docs.oracle.com/javase/1.5.0/docs/guide/language/autoboxing.html