注解_自定义注解_属性定义与注解_自定义注解_元注解

注解_自定义注解_属性定义

注解格式:

public @interface  注解名称{
    属性列表
}

属性:接口中的抽象方法

    要求:

    1.属性的返回值类型有下列取值

     1.基本数据类型

      int show1();

     2.String

      String show2();

     3.枚举

    public enum Person {

    p1,p2;
}

   Person per();

     4.注解  

    MyAnno2 anno2();

     5.以上类型的数组 

    String[] strs();

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

      如果定义属性时,使用default关键字给属性默认初始化值,则使用注解时,可以不进行属性的赋值

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

      数组赋值时,值使用{}包裹。如果数组只有一个值,则{}省略

   

复制代码
package day01.Demo01_Day017.JiaoXiao;

public @interface MyAnno {
    int value();
    Person per();
    MyAnno2 anno2();
    String[] strs();

    String name() ;



}
复制代码

 

package day01.Demo01_Day017.JiaoXiao;

public enum Person {
    p1,p2;
}

 

package day01.Demo01_Day017.JiaoXiao;

public @interface MyAnno2 {
}

 

package day01.Demo01_Day017.JiaoXiao;

@MyAnno(value = 12,name = "莫凡",per = Person.p1,anno2 = @MyAnno2,strs = {"abc","bbb"})
public class Worker {
}

 

 注解_自定义注解_元注解

  元注解:用于描述注解的注解

@Target
 描述注解能够作用的位置
  ElementType取值:
    TYPE:可以作用于类上
    METHOD:可以作用与方法上
    FIELD:可以作用于成员变量上
@Retention
 描述注解被保留的阶段
    @Retention(RetentionPolicy.RUNTIME)当前被描述的注解,会保留到class字节码文件中,并被JVM读取到
@Documented
 描述注解是否被抽取到api文档 
@Inherited:描述注解是否被子类继承
复制代码
package day01.Demo01_Day017.JiaoXiao;

import java.lang.annotation.*;

/**
 *
 元注解:用于描述注解的注解

 @Target
  描述注解能够作用的位置
 @Retention
  描述注解被保留的阶段
 @Documented
  描述注解是否被抽取到api文档 
 @Inherited:描述注解是否被子类继承
 *
 */
@Target({ElementType.TYPE,ElementType.METHOD,ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface MyAnno3 {


}
复制代码

 

复制代码
package day01.Demo01_Day017.JiaoXiao;

@MyAnno(value = 12,name = "莫凡",per = Person.p1,anno2 = @MyAnno2,strs = {"abc","bbb"})
@MyAnno3
public class Worker {
    @MyAnno3
    public String name ="aaa";
    @MyAnno3
    public void add(){

    }
}
复制代码

 



  

posted @   zj勇敢飞,xx永相随  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示