Conversation
| return traverseClassHierarchy(clazz, annotation); | ||
| } | ||
|
|
||
| private static Optional<Class<?>> traverseClassHierarchy( |
There was a problem hiding this comment.
А зачем вот эта штука хитрая (имею ввиду обход такой)?
There was a problem hiding this comment.
если переданный класс не аннотирован, то метод ищет аннотированный класс выше по иерархии классов
| public class PackageUtils { | ||
| public static Optional<Class<?>> getAnnotatedClass( | ||
| final Class<?> targetClass, | ||
| final Class<? extends Annotation> annotation, |
There was a problem hiding this comment.
Ваще по смыслу аннотация всегда она и та же, но можно и так
| InstantiationException, | ||
| IllegalAccessException | ||
| { | ||
| var annotatedClass = getAnnotatedClass(clazz, Generatable.class, packageName); |
There was a problem hiding this comment.
Кажется вы забыли тестики. В связи с этим вопрос -- а если я на вход вашему главному методу дам коллекцию какую нибудь типа списка, оно будет работать?
There was a problem hiding this comment.
Хотя по условиям этого особо не требуется конечно
There was a problem hiding this comment.
Если коллекция не помечена аннотацией, то главный метод выбросит исключение. Если коллекция помечена аннотацией, то метод просто создаст пустую коллекцию
| } | ||
|
|
||
| } | ||
| field.set(instance, value); |
There was a problem hiding this comment.
а если оно статик? нет ли нюансов с остальными модификаторами?
There was a problem hiding this comment.
да, это может привести к ошибкам. добавил исключение изменения статических полей в коде выше
No description provided.