JSR 305注释可以与将在Android上运行的代码一起使用吗?

时间:2014-02-28 13:46:30

标签: java android static-analysis findbugs jsr305

可以在Android上运行的代码中使用像javax.annotation.Nonnull这样的JSR 305注释吗?看起来Dalvik VM不支持包,这些注释具有运行时保留策略。有没有人使用javax包(或使用eclipse JDT等替代方法)?

3 个答案:

答案 0 :(得分:1)

dalvik或ADT不完全支持javax。*包。但是,您可以使用常规注释。官方docs中的完整包裹列表。

也就是说,任何针对.class文件的东西都行不通。有一个名为dexmaker的库可以解决这个问题。

答案 1 :(得分:1)

Afaik,annotations can be missing at runtime(即使有运行时保留),这将导致注释被静默删除。因此,如果您的代码编译,那么即使稍后运行代码的VM不知道注释,您也可以。

在您的情况下,您正在使用静态分析工具使用的javax.annotation.Nonnull,但通常在运行时没有效果。所以是的,你可以使用它。

相反,在运行时,其存在与您的应用程序相关的假设其他注释必须存在于类路径中。

答案 2 :(得分:0)

为什么不使用Android标准sdk plartform中的androidx.annotation