@NonNull或@Nullable是如何运作的?

时间:2015-03-30 07:51:15

标签: android

喜欢:

public TestBean check(@NonNull TestBean abc) {
    System.out.println();
    return abc;
}

@NonNull api doc说:

  

表示参数,字段或方法返回值永远不能为空

我有一个问题:如果abc为null,为什么它会执行这个方法?

2 个答案:

答案 0 :(得分:1)

这些注释可能由代码分析工具(和IDE)和文档使用。它们不是由运行时强制执行的。

此处的android支持工具包文档中给出了一个示例:http://tools.android.com/tech-docs/support-annotations

Android Studio支持这些注释,链接中的屏幕截图。

Java 8引入了类似的注释,this documentation更详细地介绍了这些注释如何与工具和IDE协同工作,以帮助开发人员更早地发现问题。在普通的Java中,您可以使用Bean Validation API在运行时以声明方式强制执行空检查,我不知道Android中是否存在任何类似的功能。

答案 1 :(得分:0)

它们只是让您更容易在代码时间内检查底层的NULL点异常。