Я пытаюсь связать несколько классов @Value @NonFinal без создания каких-либо конструкторов.
Ожидая, что lombok решает сгенерировать конструктор, который вызывает super со всеми аргументами, которые соответствуют.
Есть ли способ достичь этого? Кажется, что он разбивается с ошибкой, которая не имеет смысла, потому что у класса отца есть такой конструктор, заданный аннотацией. Я пробовал это с классами в разных файлах, с тем же поведением.
Пример:
public class TestLombok {@Value
@NonFinal
class A {
@NonNull Integer a;
}@Value
@NonFinal
class B extends A {
String b;
}}
Ошибка: (12, 5) java: constructor A в классе TestLombok. A не может применяться к заданным типам: требуется: java.lang.Integerfound: no argumentsreason: фактические и формальные списки аргументов различаются по длине
К сожалению, это невозможно.
Чтобы выяснить, какие поля или методы имеют родительский класс, требуется разрешение. В тот момент, когда lombok нужно генерировать методы, разрешение становится невозможным, поскольку это изменит исход доступных полей и методов.
Раскрытие информации: я разработчик lombok.