当Lambda表达式被拒绝时,通常是由于类型推断问题导致的。在这种情况下,我们可以显式地指定Lambda表达式的参数类型来解决问题。
下面是一个示例:
List names = Arrays.asList("John", "Jane", "Alex");
// 错误示例:Lambda表达式被拒绝
names.stream()
.map((name) -> name.length())
.forEach(System.out::println);
// 正确示例:显式指定Lambda表达式的参数类型
names.stream()
.map((String name) -> name.length())
.forEach(System.out::println);
在上面的示例中,我们使用map()
操作将列表中的每个字符串映射为其长度,然后使用forEach()
操作打印每个长度。在错误示例中,Lambda表达式(name) -> name.length()
被拒绝,因为编译器无法推断出name
的类型。为了解决这个问题,我们可以显式地指定name
的类型为String
,如正确示例所示。
通过显式地指定Lambda表达式的参数类型,我们可以解决被拒绝的Lambda表达式问题。
下一篇:被拒绝的拉取请求需要进行的更改