-3

为什么像 Boolean 等包装类的对象直接取值而不初始化但不允许对象的属性?
代码:

class TestByte{ 
   public static void main(String[] a) { 
      Byte b=125; System.out.println(b);
   }
}
4

2 回答 2

0

好吧,Abhishek,构造器初始化对象的目的是做任何准备工作以使该对象生效。由于包装类和 String 只保存数据,初始化它们的唯一准备是为它们提供必要的值。所以,我们实际上不需要为它们调用new

于 2012-06-14T07:38:54.473 回答
0

你的意思是为什么你可以使用方法而不是通过使用 Byte b = 25 而不是将 Byte 对象显式初始化为 Byte b = new Byte(25) 而从包装类对象中抛出 NullPointerException ?

好吧,如果您确实是这个意思,那是因为从 java 1.5 开始,可以在不显式实例化对象的情况下将值分配给 Wrapper 引用。这称为自动装箱,它隐式创建包装对象实例并为其分配值。

这样:Byte b = 25它与 相同Byte b = new Byte(25)。如果您分配一个字节范围内的值,则拳击版本会影响比较包装器值的结果。

于 2012-06-14T07:27:15.213 回答