【问题标题】:Is it better to annotate Integer with @NonNull, or use primitive int?用 @NonNull 注释 Integer 还是使用原始 int 更好?
【发布时间】: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 或其他容器中)。原因之一是避免不必要的装箱和拆箱。

标签: java android


【解决方案1】:

您实际上使用了两种不同的类型。

如果你使用int 而不能有一个空值,它是一个原始类型并且它必须被初始化为一些东西,例如int myNumber = 0; 如果你使用一个整数,你实际上是在创建一个整数对象。这通常是不必要的,可以避免。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 2020-01-03
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    相关资源
    最近更新 更多