我对Lambdas来说还很陌生,我正尝试通过以下方式使用它,但它似乎没有用。在其中一个是条件的情况下,是否可以有多个声明?
ArrayList<Message> msgs = new ArrayList<>(ms.values());
Calendar cal = Calendar.getInstance();
msgs.stream().filter( m -> {
cal.setTime(m.getCreated());
cal.get(Calendar.YEAR) == year
});
我了解它的工作方式如下:
collection.stream().filter(x -> 1 == x);
但是由于我需要设置Date
和一起使用Calendar
以获取年份,因此我必须在两个声明中进行此操作。
我知道这可行:
msgs.forEach(m -> {
cal.setTime(m.getCreated());
if (cal.get(Calendar.YEAR) != year) {
msgs.remove(m);
}
});
但是我想知道是否有可能以我尝试的方式或相对类似的方式进行?
如果使用花括号,则需要返回一个值。期望布尔值返回。它只是假设没有括号。
return cal.get(Calendar.YEAR) == year;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句