java注解

java 注解

更加详细的解释

注解,还需要自己具体加入到自己的业务逻辑之中

 

@Retention(RetentionPolicy.RUNTIME)
public @interface CarNameTarget {
    String name() default  "";
}
@Retention(RetentionPolicy.RUNTIME)
public @interface CarSalerTarget {
    public String salerName();
    public int age() default  1;
}
public class BnechCar {
    @CarNameTarget(name = "奔驰")
    private String name;

    @CarSalerTarget(salerName = "wpz", age = 22)
    private String salerInfo;
}

 

/**
 *   方法1:<T extends Annotation> T getAnnotation(Class<T> annotationClass): 返回改程序元素上存在的、指定类型的注解,如果该类型注解不存在,则返回null。
   方法2:Annotation[] getAnnotations():返回该程序元素上存在的所有注解。
   方法3:boolean is AnnotationPresent(Class<?extends Annotation> annotationClass):判断该程序元素上是否包含指定类型的注解,存在则返回true,否则返回false.
   方法4:Annotation[] getDeclaredAnnotations():返回直接存在于此元素上的所有注释。与此接口中的其他方法不同,该方法将忽略继承的注释。(如果没有注释直接存在于此元素上,则返回长度为零的一个数组。)该方法的调用者可以随意修改返回的数组;这不会对其他调用者返回的数组产生任何影响。

 */
public class CarInfoUtil {
    public static void getFruitInfo(Class<?> clazz) {
        Field[] fields = clazz.getDeclaredFields();
        for (Field field : fields) {
            System.out.println(field.getName());
            if (field.isAnnotationPresent(CarNameTarget.class)) {
                CarNameTarget name = (CarNameTarget) field.getAnnotation(CarNameTarget.class);
                String carColour = "汽车的中文名:" + name.name();
                System.out.println(carColour);
            }
            else if (field.isAnnotationPresent(CarSalerTarget.class)) {
                CarSalerTarget saler = (CarSalerTarget) field.getAnnotation(CarSalerTarget.class);
                String salerInfo = " 销售员姓名:" + saler.salerName() + " 销售员年龄:" + saler.age();
                System.out.println(salerInfo);
            }
        }
    }

    public static void main(String[] args) {
        CarInfoUtil.getFruitInfo(BnechCar.class);
    }
}

然后实例化class  将注解的配置相应的属性上就行了

 

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值