![]() |
1
8
|
![]() |
2
4
程序员可以选择这样写,以便直观地强调day_1是整数(object),而不是int。 我不是说我推荐它,但我可以想象有人出于这个原因采用这种方法。 |
![]() |
3
4
除了乔恩的原因,有些人根本不喜欢自动(联合国)拳击,句号。有些人选择通过可选的编译错误或警告(Eclipse可以将其转换为错误或警告,例如)来禁止它的一般使用,从而明确地避免了它的许多细微差别。 如果是这样的话,除了使用第一个,没有太多的选择,即使在这样的情况下,它并没有真正获得太多。 |
![]() |
4
1
就编译器而言,没有区别(尽管在参数过载的情况下应该小心)。在引擎盖下,为第2天显示的表单被编译器简单地转换为第1天使用的表单。 对人类来说,可能会有不同。我通常避免将自动(un)装箱作为防御编程的一种行为,因为我觉得这种做法太容易让我忘记空的情况。但实际上,这取决于你。 |
![]() |
5
1
自动氧化会导致非常细微的错误,这些错误可能很难找到。 因此,一些IDE能够在使用任何类型的装箱/拆箱时生成警告。如果您想消除此警告,选项1将为您执行此操作。 所以,归根结底,这都取决于个人偏好和项目的编码标准。 在这种特殊情况下,使用自动氧化没有危险。 |
![]() |
6
1
integer.valueof(1)允许缓存公共值;对于-128到128之间的值,它将始终返回相同的对象,例如,而new integer(1)将始终返回新的对象。我要说的是,将它用于所有从数字派生的类型(integer、long、bigdecimal等)是一个很好的实践,尽管这可能是autoboxing在封面下所做的。 Bart van Heukelom,list.remove(1)和list.remove(新整数(1))之间的区别是:list.remove(1)将从list.list中删除索引1处的对象。remove(新整数(1))将删除列表中与值为1的整数对象相等的所有对象。请记住,集合不能存储基元,只能存储对象。 |
![]() |
7
-1
这是一个坏习惯,没有理由这样做,因为编译将生成
|