------- android培训、java培训、期待与您交流! ----------
一、注解部分
1、注解(Annotation):一个注解本质上是一个类。
2、JDK基本注解(3个):
@SuppressWarnings("deprecation")://压缩"过时"
@Deprecated://声明过时
@override://覆盖
3、自定义注解类:
3.1 注解类
@interface A
{
//注解类中的抽象方法声明等
}
@A
Class B
{
//实际Class中的实现
}
Class C
{
B.class.isAnnotationPresent(A.class);
B.class.getAnnotation(A.class);
}
说明注解的生命周期。
@Retention(RetentionPolicy.RUNTIME)
分为:
RetentionPolicy.SOURCE //编译器要丢弃的注释。
RetentionPolicy.CLASS //编译器将把注释记录在类文件中,但在运行时 VM 不需要保留注释。
RetentionPolicy.RUNTIME //编译器将把注释记录在类文件中,在运行时 VM 将保留注释,因此可以反射性地读取。
5、程序元素类型
指定在什么情况下使用注释类型是合法的。
@Target({ElementType.METHOD,ElementType.TYPE})
6、注解设置值
1)基本标签:
定义,eg:
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD,ElementType.TYPE})
public @interface CbyAnnotation
{
String color() default "blue"; //<--指定默认属性
String value();
String[] array();
}
使用,eg:
@CbyAnnotation(color="red",value="hello")
注:当注解中只有value属性,或者除value外的其他属性都存在默认值时,可以用以下方式调用
2)标签中的数组属性:
@CbyAnnotation("hello")
数组属性的使用,eg:
@CbyAnnotation(array={"hello","hello2"},value="hello")
@CbyAnnotation(array="hello",value="hello") //<--这里的数组array中的属性只有一个元素
3)标签中的枚举属性
定义,eg:
TrafficLamp getLamp() default TrafficLamp.RED;
4)标签中的标签属性
定义,eg:
MetaAnnotation annotationAttr() default @MetaAnnotation("hello");
使用,eg:
@CbyAnnotation(value="hello",annotationAttr=@MetaAnnotation("hello"))
------- android培训、java培训、期待与您交流! ----------