【发布时间】:2016-04-18 10:12:39
【问题描述】:
我真的很想念 Android Studio 中 eclipse 中的 @NonNullByDefault。有没有办法得到这个或类似的东西?我只看到一个使用javax的@TypeQualifierDefault,但是在android项目中似乎没有。
【问题讨论】:
标签: java android android-studio intellij-idea annotations
我真的很想念 Android Studio 中 eclipse 中的 @NonNullByDefault。有没有办法得到这个或类似的东西?我只看到一个使用javax的@TypeQualifierDefault,但是在android项目中似乎没有。
【问题讨论】:
标签: java android android-studio intellij-idea annotations
我编写了一个 gradle 脚本来处理 Android Studio 的 project-wide @NonNullByDefault 注解。
遍历所有子包,检查每个子包中是否生成package-info.java文件。
脚本在每个 assembleDebug 任务之前运行,以便您可以在项目中的所有 java 类上强制使用 @ParametersAreNonnullByDefault 注解。
【讨论】:
其实你可以直接将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 中的设置才能完全覆盖,以防您在包裹上忘记它
【讨论】: