を呼び出します。そこで、レコードのアドレスを設定するために次のコードを作成しました(存在する場合)。オプションifPresentは、私は、次のシグネチャを持つプロシージャを呼び出す必要があり、オブジェクトのメソッド
Optional<Address> address = getAddress();
if (address.isPresent())
record.setAddress(address.get());
はしかし、私は、次の通知を得る:
は、機能的なスタイルに書き換えることができ
Optional.isPresent()
かのようなifPresentレポート条件に置き換えることができます。
だから私はは素晴らしいと思った、私は私のコードを簡素化するために、このクールなifPresent
ものを使用するつもりです。それから私は、この行を思い付いた:
getAddress().ifPresent(x -> record.setAddress(x));
と1に素敵な、3行を考えました。しかし、私は、メソッド参照
で、このラムダを置き換えSonarLint
から次のようなメッセージを持って、私はは、なぜ私はちょうど単一の変数を設定するためのメソッドを作成する必要があるのと思いましたか?
とにかく、私は
Optional
を初めて使用しているので、私はここで何か誤解しているかもしれません。だから、このシンプルなコードを推奨事項とベストプラクティスに従ってどうすればよいですか?
を、私の場合'getAddress()。ifPresent(record :: setAddress);'(オブジェクトを記録する)コンパイルします。大丈夫ですか? –
あなたの例では 'record' – lucasvw
という正しい名前の' Record'の代わりに変数名を使用してください。レコードの代わりにレコードを使うべきです。ありがとう、@lucasvw –