web-dev-qa-db-ja.com

Lombokで1つのセッター/ゲッターを省略する

Lombokでデータクラスを使用したい。約12個のフィールドがあるので、すべてのセッターとゲッターを生成するために、@Dataで注釈を付けました。ただし、アクセッサを実装したくない特別なフィールドが1つあります。

Lombokはこのフィールドをどのように省略しますか?

175
DerMike

@Getterおよび@Setter注釈にアクセスレベルを渡すことができます。これは、ゲッターまたはセッターを保護またはプライベートにするのに役立ちます。デフォルトを上書きするためにも使用できます。

@Dataを使用すると、デフォルトでアクセサーにパブリックアクセスできます。次のように、特別なアクセスレベルNONEを使用して、アクセサーを完全に省略することができます。

@Getter(AccessLevel.NONE)
@Setter(AccessLevel.NONE)
private int mySecret;
316
Michael Piefel

@ Data description に従って、使用できます:

生成されたすべてのゲッターとセッターは公開されます。アクセスレベルをオーバーライドするには、明示的な@Setterアノテーションまたは@Getterアノテーション、あるいはその両方を使用してフィールドまたはクラスに注釈を付けます。また、このアノテーションを(AccessLevel.NONEと組み合わせて)使用して、ゲッターやセッターを完全に生成しないようにすることもできます。

35
Mark Rotteveel