0

我是 Java 新手,我对使用构造函数有一些疑问。在什么情况下我应该使用new Integer()语句?看代码:

    Integer a = 129;//1
    Integer b = new Integer(129);//2
    List<Integer> list= new ArrayList<Integer>();
    list.add(new Integer(1));//3
    list.add(2);//4

哪一行是糟糕的编程习惯的例子?

4

2 回答 2

3

使用 new Integer() 将保证您有一个新的 Integer 对象引用。

直接使用该值并不能保证这一点,因为将 int 自动装箱为 Integer 可能不会执行该对象实例化。

我会说你只需要 new Integer(1) 在非常奇怪的边缘情况下,所以大多数时候我会说你永远不需要做 new Integer ...

另外请记住,自动装箱/拆箱可能会在某些边缘情况下产生一些错误。

Integer x = null;
int y = x; // Null Pointer Exception

发生自动(取消)装箱的长时间迭代可能会产生未经训练的眼睛可能不会注意到的性能成本

于 2013-09-26T20:06:48.027 回答
2

使用自动装箱作为默认模式 - 它一直存在并且让生活变得更加轻松。

自动装箱是 Java 编译器在原始类型与其对应的对象包装类之间进行的自动转换。例如,将 int 转换为 Integer,..

虽然与new Integer(请参阅其他答案/评论/链接)略有不同,但我通常不考虑使用new Integer好的方法并严格避免它。

于 2013-09-26T20:09:34.727 回答