Java 标注(Annotation)详解
自定义注解
java
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* 模型转换设定
*/
@Retention(RetentionPolicy.RUNTIME)
@Target( { ElementType.FIELD })
public @interface TransferSetting {
/**
* 字段类型
*/
public enum FieldType {COMMON, CODE};
/**
* 源字段名
* @return
*/
String originalFieldName();
/**
* 字段类型 (默认为 COMMON)
* 为 Code 时需要设定 CodeGroup(代码组) 属性,根据 CodeGroup 获取名称后设置到目标 Field
* @return
*/
FieldType fieldType() default FieldType.COMMON;
/**
* 代码组
* @return
*/
String codeGroup() default "";
}
使用
java
// 获取目标类型的转换设定注解
TransferSetting transferSetting = targetField.getAnnotation(TransferSetting.class);
String originalFieldName = "";
if (transferSetting != null && !transferSetting.originalFieldName().isEmpty()) {
originalFieldName = transferSetting.originalFieldName();
} else {
originalFieldName = targetField.getName();
}