类中的变量注释[关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类中的变量注释[关闭]相关的知识,希望对你有一定的参考价值。

最近我看到了一个使用注释验证字段的示例:

Class Foo{
    @Min(2)
    int x;
}

我知道我可以访问注释接口中声明的函数,如:

//UPDATE: missing code
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@interface Min {
    int x() default 0;
}

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@interface Afoo {
    String msg() default "Oy!";
}

@Afoo(msg = "Hi!")
class Foo{
//    @Min(3)
    public int x;
}

public class Test{
    public static void main(String[] args) {
        Class c = Foo.class;
        Annotation an = c.getAnnotation(Afoo.class);
        Afoo a = (Afoo)an;

        System.out.println(a.msg());
    }

}

但是,当我取消注释该行时

//    @Min(3)

并创建一个名为Min的新注释界面,我有一个错误说:

注释类型不适用于此类声明。

所以,即使我可以访问此功能,我怎么知道它与x有关?

答案

假设你自己版本的Min注释的声明本身用@Target(ElementType.TYPE)注释,@Target是错误的。 ElementType.TYPEfor classes, interfaces and enum declarations。您不想注释类型,您想要注释字段x。使用

@Target(ElementType.FIELD)

代替。

以上是关于类中的变量注释[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何将 View 类中的代码片段移动到 OnAppearing() 方法?

从片段类中的对话框添加项目到recyclerview。

Snackbar 在片段类中不起作用

有没有办法关闭代码片段中的命名建议?

如何禁用在android片段类中按下的后退按钮

vscode 用户代码片段 vue初始化模板 Snippet #新加入开头注释 自动生成文件名 开发日期时间等内容