lombok @Value @NonFinal наследование

Я пытаюсь объединить несколько классов @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: конструктор A в классе TestLombok.A не может быть применен к данным типам; обязательно: java.lang.Integer найдено: нет аргументов причина: фактические и формальные списки аргументов различаются по длине

1 ответ

Решение

К сожалению, это невозможно.

Чтобы выяснить, какие поля или методы есть у родительского класса, требуется разрешение. В тот момент, когда ломбок должен генерировать методы, разрешение становится невозможным, поскольку это изменит исход доступных полей и методов.

Раскрытие информации: я разработчик ломбок.

Другие вопросы по тегам