博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 自定义注解研究
阅读量:6764 次
发布时间:2019-06-26

本文共 1466 字,大约阅读时间需要 4 分钟。

hot3.png

场景:给商品对象的名称注解,当商品名称为空的时候使用注解的默认名称。

步骤一:定义一个注解,eclispe下可以右键新建一个annotation。

package com.fengshu.Spring.util;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface DefaultProductName {	String defaultName() default "";}

步骤二:编写一个注解处理器

package com.fengshu.Spring.util;import java.lang.reflect.Field;public class ProductInfoUtil {	public static String getProductDefaultName(Class
clazz) { String productName = ""; Field[] fields = clazz.getDeclaredFields(); for (Field field : fields) { if (field.isAnnotationPresent(DefaultProductName.class)) { DefaultProductName pro = (DefaultProductName) field.getAnnotation(DefaultProductName.class); productName = pro.defaultName(); break; } } return productName; }}

步骤三:使用

package com.fengshu.Spring.util;public class Product {	@DefaultProductName(defaultName = "运动鞋")	private String name;	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}	public static void main(String[] args) {		Product product = new Product();		if (product.getName() == null) {			product.setName(ProductInfoUtil.getProductDefaultName(Product.class));		}		System.out.println(product.getName());	}}

如上可成功打印出默认商品名称

转载于:https://my.oschina.net/fengshuzi/blog/419833

你可能感兴趣的文章