Java

快速上手自定义Java注解

2019-03-23  本文已影响1人  団长大人

Java注解

注解式Java5后才产生的技术,为框架简化代码而存在的

注解的分类

public @interface AddAnnotation {
    
}

定义注解

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AddAnnotation {
    int userId() default 0;

    String userName() default "默认名字";

    String[] arrays();
}

调用时如下

public class User {
    @AddAnnotation(userId = 3,arrays = {"123","321"})
    public void add() {
        
    }
}

使用反射机制获取注解的值

直接上代码

    public static void main(String[] args) throws ClassNotFoundException {
        Class<?> targetClass = Class.forName("com.libi.entity.User");
        //获取当前类所有的方法(不包括父类的方法)
        Method[] declaredMethods = targetClass.getDeclaredMethods();
        for (Method declaredMethod : declaredMethods) {
            //拿到这个方法上的这个注解对象
            AddAnnotation addAnnotation = declaredMethod.getDeclaredAnnotation(AddAnnotation.class);
            if (addAnnotation == null) {
                //如果为空表示这个方法没有这个注解
                continue;
            }
            //这里表示拿到了这个注解
            System.out.println("userId:"+ addAnnotation.userId());
            System.out.println("userName:"+ addAnnotation.userName());
            System.out.println("arrays:"+ addAnnotation.arrays()[0]);
        }
    }
上一篇下一篇

猜你喜欢

热点阅读