在初始化最终的整数时,有没有使用Integer.valueOf(X)的原因,如下:
public class MyClass
{
public static final Integer DAY_1 = Integer.valueOf(1); // Why do it this way?
public static final Integer DAY_2 = 2; // When it can be done this way?
}
我理解在Java的旧版本中添加自动装箱之前这是必要的。现在是否还有这种代码的原因呢?还是只是一种不好的习惯?
Integer.valueOf(int)
是在1.5版本中添加的,与自动装箱相同。这是为了更加清晰明了。在其他情况下可能会产生混淆。例如,在List<Integer>
中,remove(int)
和remove(Integer)
有非常不同的作用。 - Tom Hawtin - tacklineremove
的行为不同?难道所有常见的List
实现都使用equals
吗? - Bart van Heukelom