---------------------- android培训、java培训、期待与您交流! ----------------------
JDK1.5引入的新特性其中之一--注解;
1.什么是注解?
注解就是传递给java编译器或者开发工具某种信息
相当于一种标记,在程序中加了注解就相当于打上了某种标记,java编译器或者开发工具可以通过反射来获取类中添加的任何标记
判断注解的作用是什么,java虚拟机或开发工具就会去干相应的事
注解可以加在包、类、方法、字段或者方法的参数上都可以
直接以@打头。注解就相当于一个特殊的类,添加了什么注解,就相当于调用了什么类。
2.注解的原理
1.注解类
publci @interface A{}
↓
2.调用了注解类的类
@A
public class B{}
↓
3.对调用了注解类的类进行反射操作的类
public class C{
B.class.isAnnotionPersent(A.class);
A a = B.class.getAnnotion(A.class);
}
下面我们通过一个自定义实例来模拟注解原理
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME) //把自定义注解保存到运行时
public @interface DefinitionAnnotion { //自定义一个DefinitionAnnotion注解
}
@DefinitionAnnotion //引用自定义注解
public class AnnotionTest { //定义个调用了注解类的类
public static void main(String[] args) { //大家可把main方法看成是 对调用注解类的类进行反射操作的类
if(AnnotionTest.class.isAnnotationPresent(DefinitionAnnotion.class)){ //判断存不存在DefinitionAnnotion注解类的字节码
DefinitionAnnotion dfa = (DefinitionAnnotion)AnnotionTest.class.getAnnotation(DefinitionAnnotion.class);//存在就取的DefinitionAnnotion
System.out.println(dfa);
}
}
}
这样我们就通过反射成功获得了注解,并进行相应操作。
---------------------- android培训、java培训、期待与您交流! ----------------------