Integer i="aaa";
Integer i=integer.valueOf("aaa");
jdk1.5 以后提供了自动拆箱与自动装箱功能,高手们提供下为什么语句一不能通过而语句二却可以?
是不是只能和相对应的基本类型才可以使用(比如 Integer&&int,Double&&double)
Integer i=integer.valueOf("aaa");
jdk1.5 以后提供了自动拆箱与自动装箱功能,高手们提供下为什么语句一不能通过而语句二却可以?
是不是只能和相对应的基本类型才可以使用(比如 Integer&&int,Double&&double)
第二句中,Integer的valueOf()方法接收一个String型的参数,所以可以通过编译,但是如果按给出的语句执行,会得到一个运行时异常所以这两种方式都不会得到正确的结果
System.out.println(i++);
这两句就是用的autoboxing and unboxing 怎么不行?
Integer i=integer.valueOf("aaa"); //这里出现的是运行期错误。编译是没有问题的。Integer i=10;
System.out.println(i++);
这两句没有问题啊,打印出来是10的。如果你想看到11这个值,就应该用++i;
System.out.println(++i);
Integer i=integer.valueOf("aaa");
这个可跟unboxing 和 autoboxing没关系.
把String转成Integer也会出现异常,好像"1110xxxx" 转成Integer的11110
"aaa"转成Integer是直接出错的