私はjava-8
で作業しています。次のコードスニペットを参照してください -ラムダ式の使用中に変数に値を格納する
studentsOfThisDept = students.stream()
.filter(s -> (student != null
&& s.getDepartment() != null
&& s.getDepartment().getCode().equals("CS")
))
.collect(Collectors.toList());
ここで私は2チェックを実行する必要があります -
s.getDepartment() != null ; // 1st check
と
s.getDepartment().getCode().equals("CS") // 2nd check
を私はs.getDepartment()
の値を格納することができますどのような方法がありますいくつかの変数(例えば、dept
)は、2番目のチェックで書くことができるように -
dept.getCode().equals("CS");
人の
ある述語から 'boolean'を返すことが必須ですか? – Razib
@Razibはい。なぜなら、述語は、署名が 'boolean test(T t)'である抽象メソッドを持つ関数インタフェースですから。これはラムダとして実装しているメソッドです。ですから、このインターフェースを満足させるためには、ブール値を返す必要があります。 https://docs.oracle.com/javase/8/docs/api/java/util/function/Predicate.htmlを参照してください。 – kjsebastian