zoukankan      html  css  js  c++  java
  • Java自定义注解

    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
  • 相关阅读:
    SELFJOIN
    lLinux编程大全
    一个基础但是隐晦的c++语法问题
    cocos2dx内存优化
    iOS和android游戏纹理优化和内存优化(cocos2dx)
    STL学习小结
    C++11
    游戏资源打包
    C++ '__FILE__' and '__LINE__
    Cocos2dx纹理优化的一些方案
  • 原文地址:https://www.cnblogs.com/darange/p/10146933.html
Copyright © 2011-2022 走看看