自定义注解 @interface的使用说明

@Target(ElementType.FIELD)

@Retention(RetentionPolicy.RUNTIME)

public @interface productFieldself

{ //类型枚举

public enum Type{ 手机,电脑,平板};

//商品类型

Type productType() default Type.手机;

//商品发布时间

String productPublishYear() default "";

//商品名称

String productName() default "";

}

 

声明位置

class canku{

@productFieldself(name = "productType" value ="手机")

@productFieldself(publishYear="2017发布")

String canku //仓库

 

//使用

// 解析productFieldself类属性的注解

// getDeclaredFields方法会返回getDeclaredFields类所有的属性

Field[] fields = canku.class.getDeclaredFields();

for(Field field : fields){

//判断属性是否标注了@getDeclaredFields注解

boolean fieldHasAnno = field.isAnnotationPresent(getDeclaredFields.class);

if(fieldHasAnno){ //获取@productFieldself注解

ProductAnnotation product = field.getAnnotation(productFieldself.class);

//获取@productFieldself注解,进行自行处理

参数值 String name = product.productName();

String publishYear = product.publishYear();

}

 

posted @ 2022-04-24 18:31  爱做笔记  阅读(200)  评论(0)    收藏  举报