Optional.map(内部メソッド参照を使用する方法)

双ビット:

私はオプションを持っています。

Optional<AssetEvent> latestEvent = ...

私が存在する場合、イベント内からリストにフィールドを追加したいです。

latestEvent.map(event -> event.getTimestamp()).ifPresent(latestList::add);

私のIDE(Intelij)のショー、私は上の「ラムダは、メソッドの参照に置き換えることができます」 event.getTimestamp()

にリファクタリング

latestEvent.map(this::getTimestamp).ifPresent(latestList::add);

ので、私にエラーを与えるthisのコードが実行されるもので、周囲のオブジェクトを参照します。どのように私はオプションの内部オブジェクトのメソッドを参照することができますlatestEvent

彼らは次のとおりでした:

クラス名を使用してください。例えば:

latestEvent.map(AssetEvent::getTimestamp).ifPresent(latestList::add);

仮定がAssetEvent持つクラスの名前であるgetTimestamp方法を。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=224059&siteId=1