首页 > 编程语言 > 详细

Java自定义注解

时间:2018-12-19 23:45:06      阅读:162      评论:0      收藏:0      [点我收藏+]

1. 自定义注解

//表示适用于方法或类
@Target({ElementType.METHOD,ElementType.TYPE})
//运行时注解
@Retention(RetentionPolicy.RUNTIME)
public @interface Description {
    String value();
    int age() default 18;
}

2. 使用注解

@Description(value = "i am class annotation",age=12)
public class Child {
//age采用default值
@Description(value = "i am method annotation")
public String name(){
return null;
}
public int age(){
return 0;
}
}

3. 测试


public class Main {
public static void main(String[] args){
//RetentionPolicy.CLASS或RetentionPolicy.SOURCE时无输出
try{
Class c = new Child().getClass();
boolean isExist = c.isAnnotationPresent(Description.class);
if(isExist){
Description d = (Description) c.getAnnotation(Description.class);
System.out.println(d.value());
System.out.println(d.age());
}
for(Method m : c.getMethods()){
for(Annotation a : m.getAnnotations()){
if(a instanceof Description){
Description d = (Description) a;
System.out.println((d.value()));
System.out.println((d.age()));
}
}
}
}catch (Exception e){
e.printStackTrace();
}
}
}
i am class annotation
12
i am method annotation
18

 

Java自定义注解

原文:https://www.cnblogs.com/darange/p/10146933.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!