//定义自定义注解 Target 用于那个地方,retention什么时候加载
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface SyncFieldName {
//注解的属性
String fieldName() default "";
String sourceField() default "";
}
public class Pojo {
//自定义注解 两个不同实体的 xm字段 和 name字段进行比较
@SyncFieldName(fieldName = "XM", sourceField = "properties.name")
private String name;
}
/**
使用的时候使用了反射,获取这个这个pojo所有要比较的字段
*/
Field[] provincialLawyerFields = pojo.class.getDeclaredFields();
//然后两个不同的数据 进行取值
for (Field PojoField : provincialLawyerFields) {
//得到我们前边定义的注解,根据数据实体不同 使用自定义注解的属性进行取值
SyncFieldName annotation=PojoField.getAnnotation(SyncFieldName.calss);
Object o1= entity1.getPropertie(annotation.getfieldName());
Object 02= entity2.getPropertie(annotation.sourceField());
//然后进行比较.....这里比较方法就省略了,这里主要是为了使用反射和注解
}
自定义注解使用
最新推荐文章于 2024-02-27 08:48:49 发布