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
  • 相关阅读:
    获取窗口句柄
    LeetCode Q136 Single Number(Medium)
    异或
    Ring3层的鼠标和键盘Hook
    Java—Applet
    Java—常用数据类型
    Java—接口与抽象类
    Java 概述
    Java—类的封装、继承与多态
    Windows—JDK安装与环境变量配置
  • 原文地址:https://www.cnblogs.com/darange/p/10146933.html
Copyright © 2011-2022 走看看