繁体   English   中英

Android Studio 是否有 NonNullByDefault 注释

[英]Is there a NonNullByDefault annotation for Android Studio

我真的很想念 Android Studio 中的 Eclipse 中的 @NonNullByDefault。 有没有办法得到这个或类似的东西? 我只看到一个使用 javax 的@TypeQualifierDefault ,但这在 android 项目中似乎不可用。

我还没有找到 @NonNullByDefault 功能。 但是您至少可以让检查员处理所有未注释的成员和参数,就好像它们被注释为 @Nullable 一样。 这至少有助于获得 100% 的空分析覆盖率。 基本上是@NullByDefault。

检查器设置

我编写了一个 gradle 脚本来处理 Android Studio 的项目范围的@NonNullByDefault注释。

它遍历所有子包以检查每个子包中是否生成了package-info.java文件。

该脚本在每个 assembleDebug 任务之前运行,以便您可以在项目中的所有 java 类上强制使用 @ParametersAreNonnullByDefault 注释

项目中所有 Java 类的 NonNullByDefault

您实际上可以将 eclipse 注释包添加到您的项目中并使用它。

只需添加

dependencies {
    implementation group: 'org.eclipse.jdt', name: 'org.eclipse.jdt.annotation', version: '2.2.600'
}

对于您的 gradle,您可以使用它提供的 @NonNullByDefault 注释。

像往常一样,您可以为每个班级设置它

@NonNullByDefault
public class MyClass {
    String test = "This is a non null string"
    @Nullable test2 = "This is a nullable string"

    public MyClass(String nonNullParam, @Nullable String nullableParam) {
        Object nonNullVar = nonNullParam;
        @Nullable Object nullableVar = nullableParam;
    }
}

或者您可以通过创建一个 package-info.java 文件并在其中为整个包设置它

@NonNullByDefault   
package my.package;

import org.eclipse.jdt.annotation.NonNullByDefault;

您仍然需要激活https://stackoverflow.com/a/35942944/2075537 中的设置才能获得完整的覆盖范围,以防您在包裹上忘记它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM