ロンボクでデータクラスを使用したいと思います。約12のフィールドがあるので、すべてのセッターとゲッターを生成するために、@Data
と注釈を付けました。しかし、アクセサーを実装したくない特別なフィールドが1つあります。ロンボクでSetter/Getterを1つ省略する
ロンボクはどのようにこのフィールドを省略しますか?
ロンボクでデータクラスを使用したいと思います。約12のフィールドがあるので、すべてのセッターとゲッターを生成するために、@Data
と注釈を付けました。しかし、アクセサーを実装したくない特別なフィールドが1つあります。ロンボクでSetter/Getterを1つ省略する
ロンボクはどのようにこのフィールドを省略しますか?
@Getter
と@Setter
アノテーションにアクセスレベルを渡すことができます。 getterまたはsetterを保護または非公開にするのに便利です。また、デフォルトを上書きするために使用することもできます。
@Data
では、デフォルトでアクセサにパブリックアクセスできます。あなたは今、このように、完全にアクセサを省略するために、特別なアクセスレベルNONE
を使用することができます。
@Getter(AccessLevel.NONE)
@Setter(AccessLevel.NONE)
private int mySecret;
@Data descriptionによると、使用することができます:
をすべて生成したゲッターとセッターはパブリックになります。 アクセスレベルを上書きするには、明示的な@Setter または@Getter注釈でフィールドまたはクラスに注釈を付けます。また、この注釈を( でAccessLevel.NONEと組み合わせる)ゲッターの生成を抑制するために使用することもできます。 および/またはセッター。
パーフェクト。プライベートフィールドがPOJOで、@Delegate()でアノテーションされている場合は、プロパティのセットを別の再利用可能なクラスに抽出するために使用できます。これは、複数のクラス(プロパティを追加するためのmixinの種類)に同じプロパティセットを適用する場合に便利です。たとえば、さまざまなXML要素のモデリングに適用される一連の属性を表すmixinです。 – xorcus