相关疑难解决方法(0)

避免!= null语句

我用object != null了很多东西来避免NullPointerException.

有没有一个很好的替代品呢?

例如:

if (someobject != null) {
    someobject.doCalc();
}
Run Code Online (Sandbox Code Playgroud)

NullPointerException当不知道对象是否存在时,这避免了a null.

请注意,接受的答案可能已过期,请参阅/sf/answers/167020941/以获取更新的方法.

java null object nullpointerexception

3904
推荐指数
42
解决办法
119万
查看次数

581
推荐指数
10
解决办法
45万
查看次数

在方法参数中使用NotNull Annotation

我刚开始在@NotNullJava 8中使用注释并获得一些意想不到的结果.

我有这样的方法:

public List<Found> findStuff(@NotNull List<Searching> searchingList) {
    ... code here ...
}
Run Code Online (Sandbox Code Playgroud)

我写了一个JUnit测试,传递参数searchList的null值.我期待发生某种类型的错误,但它经历过,好像注释不在那里.这是预期的行为吗?根据我的理解,这是为了让您跳过编写样板空检查代码.

@NotNull应该做什么的解释将非常感激.

java

113
推荐指数
5
解决办法
11万
查看次数

使用哪个@NonNull Java注释

什么是最好的 'NonNull'注释?

意义上的"最佳"

  • 标准方式,例如未来证明(例如标准jdk支持等)
  • 支持IDE(在java doc中显示以指示开发人员的使用情况)
  • 由findbugs等静态分析工具提供支持
  • 支持运行时分析

以下是世界目前的样子 - 任何进一步的见解都值得赞赏:

  • javax.validation.constraints.NotNull(Docs)
    + javax包因此看起来是未来的
    - JEE的一部分不是 JSE.在JSE中需要导入额外的库.
    - 静态分析工具不支持(仅限运行时验证)

  • edu.umd.cs.findbugs.annotations.NonNull(docs)
    - 外部库而不是javax
    - 不推荐使用,因为findbugs版本3.X
    +用于静态分析(由findbugs和Sonar提供)

  • javax.annotation.Nonnull(docs)
    +用于静态分析(在findbugs中)
    - JSR-305处于休眠/死亡/未知状态,如fb邮件列表所示.提交人Bill Pugh,即使直接被问到,多年来也没有对该州进行评论......

  • org.eclipse.jdt.annotation_2.0.0(文档,有趣的演示文稿)
    +用于静态分析(虽然在eclipse中不在findbugs中)
    - eclipse专有(没有尝试独立使用它们)

  • org.jetbrains.annotations.NotNull(docs)
    +用于静态分析(虽然不是在findbugs
    中的IntelliJ )- IntelliJ专有(但也可以公开作为jar)

  • lombok.NonNull(docs)
    +用于控制代码生成
    - 专有注释

  • android.support.annotation.NonNull(docs)
    + android …

java eclipse annotations intellij-idea nullpointerexception

64
推荐指数
1
解决办法
1万
查看次数