簡體   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