2017-07-21 4 views
3

Date変数を含むオブジェクトのリストから最新の日付を見つけるコードを記述しました。このラムダをメソッドリファレンス 'Objects :: nonNull'に置き換えます。

list.stream().map(segment -> segment.lastLoad).filter(x->x!=null).max(Date::compareTo).get()

しかし、私は

を述べるソナー問題はメソッド参照 'オブジェクト::非NULL' で、このラムダを交換して取得しています。

私が調べることができないのは、ソナー・リントの問題が示すメソッド参照をどこで使用できるかです。

+3

'.filter(x-> x!= null)' –

+2

また、https://stackoverflow.com/questions/28140193/purpose-of-objects-isnull-objects-nonnull –

答えて

6
.filter(x->x!=null) == .filter(Objects::nonNull) 

それはあなたが既にメソッド参照を使用することは興味深いです(ただし、このいずれかを参照してくださいに失敗した):また、あなたは明らかにDateが、Optional<Date>からの戻ってきている

max(Date::compareTo) 

、警告を取得する必要があります(IDEAを使用している場合)getOptionalに直接呼び出すことは安全ではないことに注意してください。

また、Dateが既にComparableであるため、と置き換えることもできます。

+0

も参照してください。 IDEAを使用してカーソルをハイライト部分に置き、 'ALT + ENTER'を押すと、最適化オプションが表示されます。 –

+1

私は 'Objects'クラスについてよく知りませんでした。あなたのおかげで今私は知っている。 – BeginnersSake

+4

... 'max(Date :: compareTo)'を 'max(Comparator.naturalOrder())'に置き換えることをお勧めします。 – Holger

関連する問題