用整数计算

时间:2012-04-23 18:16:01

标签: java

所以我到了一个网站,里面说Integers不允许用它计算,+ - * /%^等。

但我试过

Integer n=new Integer(8);
    n+=2;
    Integer m=new Integer(10);
    System.out.println(n+m);

它打印出来20.所以我有点困惑。我知道这是一个菜鸟问题,但我真的想得到这个,我不知道我错过了什么。那么这实际上是什么意思“整数不允许用它计算”

感谢。

编辑:@people请求:Site providing accurate information?

3 个答案:

答案 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