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 "";
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
使用
java
// 获取目标类型的转换设定注解
TransferSetting transferSetting = targetField.getAnnotation(TransferSetting.class);
String originalFieldName = "";
if (transferSetting != null && !transferSetting.originalFieldName().isEmpty()) {
originalFieldName = transferSetting.originalFieldName();
} else {
originalFieldName = targetField.getName();
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8