Это невозможно в Ломбоке (по крайней мере, в текущей версии 1.18.12). Рассмотрите возможность просмотра JavaDo c здесь . Это говорит о том, что установка свойства staticName пометит конструктор как приватный. В нем не указано явно, что он будет игнорировать свойство access , но на практике это выглядит так.
Обычно считается плохой практикой предоставлять несколько способов достижения одного и того же результата, в в этом случае создается экземпляр класса с теми же параметрами. Учитывая тот факт, что ваш код уже использует оба, вы можете рассмотреть возможность создания методов построения stati c вручную и пометить одну технику как устаревшую, чтобы предотвратить ее использование в будущем до полного ее рефакторинга.
@Getter
@EqualsAndHashCode
@ToString
@AllArgsConstructor(onConstructor=@__(@Deprecated))
public class MyClass {
private final String field1;
private final String field2;
public static MyClass of(String field1, String field2) {
return new MyClass(field1, field2);
}
}
или:
@Getter
@EqualsAndHashCode
@ToString
@AllArgsConstructor
public class MyClass {
private final String field1;
private final String field2;
/**
* @deprecated Will be removed in the future.
* Use {@link #MyClass(String, String)} instead
*/
@Deprecated
public static MyClass of(String field1, String field2) {
return new MyClass(field1, field2);
}
}