在我的Result
类中,我使用@IntDef 注解了 newInstance()
方法的第一个整数参数,像这样:
public class Result {
public static final int SUCCESS = 0;
public static final int FAIL = 1;
public static final int UNKNOWN = 2;
// ...
private Result(@Status int status, Uri uri) {
mStatus = status;
mUri = uri;
}
public static Result newInstance(@Status int status, Uri uri) {
return new Result(status, uri);
}
@Retention(RetentionPolicy.SOURCE)
@IntDef({ SUCCESS, FAIL, UNKNOWN })
@interface Status {}
}
接下来,在我的
Utils
类中,我调用了该方法并传递正确的常量作为参数。我确保使用特定的一组常量,如下所示:public static Result foo() {
// ...
return Result.newInstance(Result.SUCCESS, contentUri); // line 45
}
但是lint在安全错误方面构建失败了
"WrongConstant: 不正确的常量"
../../src/main/java/my/package/Utils.java:45: 必须为0、1、2之一
我知道可以简单地禁止此错误。但我想知道我的代码哪里出了问题?或者可能是其他问题吗?