【发布时间】:2017-09-20 15:10:45
【问题描述】:
我有以下代码:
Function<String,Boolean> funcParse = (String f)-> {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(f);
try
{
YearMonth.parse( date , formatter );
}
catch (DateTimeParseException e)
{
return false;
}
return true;
};
Arrays.stream(MONTHYEAR_FORMATS.split("\\|")).findFirst(format -> funcParse.apply(format));
我在这里有语法警告:apply (java.lang.String) in Function cannot be applied to (<lambda parameter>) 我做错了什么?
【问题讨论】:
-
findFirst()不带任何参数。您可以使用.filter(..).findFirst(),并让funcParse成为Predicate<String>。 -
但是首先创建
Function<String,Boolean>而不是创建Predicate<String>有什么意义呢?
标签: java function lambda java-8 java-stream