web-dev-qa-db-ja.com

ロンボクの@NonNullを使用した場合、@ Nullableには何を使用すればよいですか?

私は lombok @NonNull注釈 を一部のフィールド、パラメーター、メソッドに、一部はnullチェックに、一部はドキュメント化の目的で使用しています。他のライブラリから@NonNull/@NotNullアノテーションを追加した場合、混乱を招きます。

次に、いくつかのコードに@Nullable/@CanNullアノテーションも追加する場合、どちらを使用すればよいですか?それはロンボクには(合理的に)存在しません。独自の注釈を宣言すると、IDEはそれらを理解できない場合があります。既存のライブラリからこれらのアノテーションを使用すると、他の@NotNullアノテーションも追加され、ロンボクアノテーションが必要なときに間違ったアノテーションが使用される可能性があります。

4
SOFe

Javaではアノテーションにエイリアスを設定できないため、両方のフレームワークをサポートするには、両方を使用する必要があります。

クライアントがLombokの使用を選択すると、それは注釈であることを認識し、他のものを無視します。 Lombokの注釈がなければ、フレームワークはそれを登録せず、同じことが他のフレームワークにも当てはまります。

混乱を減らす

@Nullable/@CanNullの使用は避け、暗黙的にしてください。

@NonNull/@NotNullは通常、禁止されている場所でnullを使用しようとするとエラーが発生するように実装されています。 nullが許可されている場合、エラーがトリガーされる必要はありません(タイプセーフの理由は含まれません)。

これがオプションではない場合は理解します(あなたはmust nullおよびnon-nullアノテーションを使用します)。ただし、冗長性を減らす賢い方法です。

1
Vince Emigh