7.注解(1.5新特性)

来源:互联网 发布:解析json数组对象 编辑:程序博客网 时间:2024/05/17 07:45
注解:注解就是一种标记,编译器 开发工具或其它程序可以用反射了解类及各种元素上有无何种标记,并根据标记,去执行相应的操作.
     注解可以加在报包 类 字段 方法以及局部变量.


注解分类:
@Deprecated 过时
@Override 重写
@SuppressWarnings 压缩警告


自己定义注解并添加属性:


基本形式:
注解相当于一个接口,通过添加抽象方法添加属性
public @interface MyAnnotation {
public abstract int number();
}
自定义注解的使用
@MyAnnotation (number=1)


特殊形式:
public @interface MyAnnotation {
public abstract int number() default 1;//default 1添加属性的默认值
public abstract int value();
}
当多个方法中有方法名为value的方法,并且只需提供此方法一个参数时,直接写参数
@MyAnnotation (1);


添加数组属性
public @interface MyAnnotation {
public abstract int[] numberarr();
}

@MyAnnotation (numberarr={1,2})
当数组中只有一个元素时,可以省略大括号
@MyAnnotation (numberarr=1)


添加枚举属性
public @interface MyAnnotation {
EnumTest.WeekDay.day();//EnumTest.WeekDay在EnumTest类中有个WeekDay枚举
}


@MyAnnotation(day=EnumTest.WeekDay.MON)


添加注解属性
public @interface MyAnnotation {
public abstract MetaAnnoation an();//MetaAnnoation为一个注解,属性为public abstract String show()
}


@MyAnnotation(an=@MetaAnnoation(show="abc"))//@MetaAnnoation(show="abc")相当于
  //public  @interface MetaAnnoation的子类对象
添加Class属性
public @interface MyAnnotation {
public abstract Class c();
}


@MyAnnotation(c=String.class)