я пытаюсь реализовать пользовательский Java Аннотация: и написал следующее до сих пор:Java аннотаций и динамическая база данных контента
@Target({ElementType.FIELD,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MappedField{
boolean isValueRequired() default false;
}
Мое требование, если свойство/метод класса является isValueRequired = истина, то он должен получить отображаемое значение для этого свойства из базы данных:
Например, в моем db Приветствия похожи на 01 для MR и 02 для MRS и так далее.
И когда эта аннотацию включена я хочу значение свойства автоматически быть извлечена из БД:
Из других вопросов я получил намек, что мне нужно, чтобы разобрать аннотаций позже что-то вроде этого:
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)
}
но я хочу указать, где именно мне нужно написать этот код для разбора аннотаций. Любая помощь будет высоко оценена.
Thanks
Это хорошая возможность, любая альтернатива? потому что гарантировать, что все экземпляры будут созданы с помощью фабрики, будет жестким. – Roxy
Конечно. Буквально в любом месте, где выполняется код, и ваш объект можно манипулировать, и к базе данных можно получить доступ. – Kayaman