1 、有成员的Annotation必须要传参,或者默认参数,或者使用时候传参
2、 切记要想能获得注解的值,这个注解使用范围必须到 @Retention(RetentionPolicy.RUNTIME)
自定义注解:
package day8yue3;
//自定义注解
import java.lang.annotation.*;
//这个注解可以在运行时获得信息
@Retention(RetentionPolicy.RUNTIME)
public @interface MyTag {
String name() default "xiaoming";
int age() default 30 ;
}
使用注解:
package day8yue3;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.lang.*;
public class TestTag {
public static void main(String[] args)
{
try {
Class c = Class.forName("day8yue3.TestTag");
Method m = c.getMethod("info");
Annotation[] an = m.getAnnotations();
for(Annotation a :an){
//因为取出的是Annotation 类型,只是一个接口,要取出具体注解的成员,要强制转换
if(a instanceof MyTag)
{
System.out.println(((MyTag)a).age());
System.out.println(((MyTag)a).name());
//System.out.println(((MyTag)a).method1());
}
}
} catch (Exception e) {
System.out.println("没找到类");
}
}
@MyTag(age = 70,name = "new")
public void info()
{
}
}
本文介绍了Java中自定义注解的创建与使用方法,包括如何定义注解、设置注解保留策略及如何通过反射获取注解信息。通过示例展示了如何在运行时读取并利用注解的值。
1092

被折叠的 条评论
为什么被折叠?



