java自定义注解
* 1.自定义注解
新注解创建需要使用的注解:
1.@Target
表示该注解可以用于什么地方,可能的ElementType参数有:CONSTRUCTOR:构造器的声明
FIELD:域声明(包括enum实例)
LOCAL_VARIABLE:局部变量声明
METHOD:方法声明
PACKAGE:包声明
PARAMETER:参数声明
TYPE:类、接口(包括注解类型)或enum声明
2.@Retention
表示需要在什么级别保存该注解信息。可选的RetentionPolicy参数包括:SOURCE:注解将被编译器丢弃
CLASS:注解在class文件中可用,但会被VM丢弃
RUNTIME:VM将在运行期间保留注解,因此可以通过反射机制读取注解的信息
- 2.使用注解
public class Persion {
@MyAnno(hello = “world”)
public void printName(int N){
}
}- 3.解析注解
public static void main(String[] args){
try{
Class personClass=Class.forName("com.example.demo.anno.Persion");
Method personMethod=personClass.getMethod("printName", int.class);//配置在谁上,就在谁上获取
if(personMethod.isAnnotationPresent(MyAnno.class)){//先判断是否存在
System.out.println("Persoin类上配置了MethodAnnotation注解");
MyAnno methodAnnotation =personMethod.getAnnotation(MyAnno.class);//使用
System.out.println("name="+ methodAnnotation.hello());
}
}catch (ClassNotFoundException | NoSuchMethodException e){
e.printStackTrace();
}
}
还没有评论,来说两句吧...