0

So I got to a site where it says Integers don't allow Calculate with it, + - * / % ^ etc.

But I tried

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

and it prints out 20. So I am a little confused. I know this is a noob question but I really want to get this and I don't know what I am missing. So what does this actually mean "integers don't allow calculate with it"

Thanks.

EDIT: @people request :Site providing accurate information?

4

3 回答 3

7

Java 1.5+ 自动装箱(和取消装箱)原始类型 - 这称为自动装箱

您遇到的站点可能在 1.5 之前讨论过 Java:

在 Java 版本 [1.4,已编辑] 之前的代码中,您必须进行大量手动繁琐的从原始 int 到 Integer Object 的来回转换,对于 byte/Byte、char/Character、short/Short、long/Long 也是如此,浮点数/浮点数和双/双。( http://mindprod.com/jgloss/autoboxing.html )

于 2012-04-23T18:17:43.300 回答
1

那个网站可能有点过时了...

如果您使用的是 1.4 之前的 Java 版本,那么该声明是正确的,因为您只能在原始类型(和字符串......这是另一个问题)上使用 + 运算符。

目前(阅读,Java 1.5 后),当您尝试将 + 应用于它时,JVM 会自动将该 Integer 对象转换为 int 。

请记住,如果您尝试将 + 运算符应用于指向 null 的 Integer 对象,您收到一个 NullPointerException,这是由于对 null 对象应用取消装箱而导致的。

于 2012-04-23T18:23:45.280 回答
-1

对这些变量使用 javascript 函数parseInt

docs.oracle.com/javase/1.5.0/docs/guide/language/autoboxing.html

于 2012-04-23T18:19:44.217 回答