[Java基础]自定义注解之属性定义

Posted Wecccccccc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Java基础]自定义注解之属性定义相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

代码如下:

package AnnoDemo01;

public enum Person {
    p1,p2;
}

package AnnoDemo01;

public @interface MyAnno2 {

}

package AnnoDemo01;

public @interface MyAnno {

    int show1();
    String show2();

    Person per();

    MyAnno2 ann02();

    String[] strs();
}

定义了属性,在使用时需要给属性赋值

示例代码如下:

package AnnoDemo01;

public @interface MyAnno {

    int show1();
    String show2();

    int show3() default 3;
//    Person per();
//
//    MyAnno2 ann02();
//
//    String[] strs();
}

package AnnoDemo01;


@MyAnno(show1 = 1,show2 = "zhangs")
public class Worker {
}

如果只有一个属性需要赋值,并且属性的名称是value,则value可以省略,直接定义值即可。

示例代码如下:

package AnnoDemo01;

public @interface MyAnno {


    int value();
//    int show1();
//    String show2();
//
//    int show3() default 3;
//    Person per();
//
//    MyAnno2 ann02();
//
//    String[] strs();
}

package AnnoDemo01;


@MyAnno(1)
public class Worker {
}

其他属性怎么赋值?

示例代码如下:

package AnnoDemo01;

public @interface MyAnno {


    int value();
//    int show1();
//    String show2();
//
//    int show3() default 3;
    Person per();
//
    MyAnno2 ann02();
//
    String[] strs();
}

package AnnoDemo01;


@MyAnno(value = 3,per = Person.p1,ann02 = @MyAnno2,strs = {"abc","bbb"})
public class Worker {
}

以上是关于[Java基础]自定义注解之属性定义的主要内容,如果未能解决你的问题,请参考以下文章

JavaWeb之Java基础知识增强

JavaWeb之Java基础知识增强

Android APT注解处理器 ( 根据注解生成 Java 代码 )

springboot 面向切面编程之使用自定义注解

自定义注解之运行时注解(RetentionPolicy.RUNTIME)

Java 注解自定义注解 ( 注解属性定义与赋值 )