【发布时间】:2014-08-07 01:01:04
【问题描述】:
正如标题所说,@Nullable 和 @Nonull 可以帮助您的 ide 或 linter 在编译时捕获错误,但为什么它具有运行时保留?
【问题讨论】:
-
也许它通过让运行时相信不,真的,这个引用不为空来防止 NPE。 ;)
-
对于@Nullable,这意味着如果您覆盖该方法,则覆盖也应该接受空值。为了实现这一点,注释应该至少具有类保留。此评论是部分答案。
-
@emory 在覆盖带注释的方法的情况下,类保留有什么帮助?
-
@SotiriosDelimanolis 如果在源代码级别保留@Nullable,我写
void m (@Nullable p),并编译它,那么类文件中就不会有注解的痕迹了。您获得类文件并将其放在您的类路径中,扩展我的类,并覆盖我的方法。您的 ide 或 linter 是如何知道我的注释的?
标签: java annotations nullable static-analysis