我正在尝试实现自定义Java注释: 到目前为止写了以下内容:
@Target({ElementType.FIELD,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MappedField{
boolean isValueRequired() default false;
}
我的要求是,如果类的属性/方法是 isValueRequired = true ,那么它应该从数据库获取此属性的映射值:
例如在我的数据库中,Salutations对于MR为01,对于MRS为02,等等。
当启用此注释时,我希望自动从db:
获取属性值从其他问题我得到提示我需要稍后解析注释:
public static void performAnnotationScanOnClass(Class<?> clazz) {
Field[] fields = clazz.getDeclaredFields();
for ( Field field : fields ) {
Annotation[] annotations = field.getAnnotations();
for (Annotation annotation : annotations) {
if ( annotation instanceof MappedField) {
MappedField mappedField= (MappedField) annotation;
// if ( field.get( ... ) == null )
// field.set( ... , value)
}
但我的观点是我需要编写此代码来解析注释。 任何帮助都将受到高度赞赏。
由于
答案 0 :(得分:2)
一个合适的地方。例如,您可以拥有一个工厂来创建实例并填充数据库中的值。然后你只需要小心通过工厂创建所有实例(或者你不需要,但是你必须意识到注释也不会被处理)。