【发布时间】:2014-02-28 13:46:30
【问题描述】:
可以在将在 Android 上运行的代码中使用像 javax.annotation.Nonnull 这样的 JSR 305 注释吗?看起来 Dalvik VM 不支持该软件包,并且这些注释具有运行时保留策略。有没有人使用 javax 包(或使用 eclipse JDT 之类的替代方案)让它工作?
【问题讨论】:
标签: java android static-analysis findbugs jsr305
可以在将在 Android 上运行的代码中使用像 javax.annotation.Nonnull 这样的 JSR 305 注释吗?看起来 Dalvik VM 不支持该软件包,并且这些注释具有运行时保留策略。有没有人使用 javax 包(或使用 eclipse JDT 之类的替代方案)让它工作?
【问题讨论】:
标签: java android static-analysis findbugs jsr305
Afaik,annotations can be missing at runtime(即使在运行时保留),这将导致注释被静默删除。因此,如果您的代码可以编译,那么即使稍后运行您的代码的 VM 不知道该注解,您也可以。
在您的情况下,您使用的是javax.annotation.Nonnull,它由静态分析工具使用,但通常在运行时不起作用。所以是的,你可以使用它。
相比之下,在运行时与您的应用相关的假设的其他注释必须存在于类路径中。
【讨论】:
为什么不使用 Android 标准 sdk 平台中的 androidx.annotation
【讨论】: