【发布时间】:2019-07-27 04:43:39
【问题描述】:
假设您有一个名为“setFloorNumber”的方法,它接受一个不能为空的整数。 我认为您可以通过两种不同的方式做到这一点:
public void setFloorNumber (@NonNull Integer floor){
...
}
或
public void setFloorNumber (int floor){
...
}
据我所知,它们都完成了相同的事情,即要求整数参数不为空。
这些有什么优点和缺点?
是否有理由选择一个而不是另一个,或者差异可以忽略不计,这纯粹是一种风格选择?
【问题讨论】:
-
通常这不是您需要处理的事情。如果有人错误地将
setFloorNumber()与空整数一起使用,只需抛出NullPointerException。对我来说似乎很合适。 -
您应该查看 use cases for primitive int and Integer ,因为除非必要,否则您应该更喜欢 int 而不是 Integer,这种情况也是如此。
-
一般而言,您应该更喜欢
int,除非您有充分的理由使用Integer(例如将数字存储在List或其他容器中)。原因之一是避免不必要的装箱和拆箱。