我有如下接口:
public interface Mapper {
public <T> T map(T element);
}
当我使用 Mapper mapper = (int n) -> n*2;
时,出现了问题:
非法的 lambda 表达式:类型 Mapper 的 map 方法是泛型的
我错过了什么?如何创建一个通用方法以在 lambda 表达式中使用?
public interface Mapper<T> { // type bound to the interface
T map(T element);
}
Mapper<Integer> mapper = element -> element * 2; // notice Integer and not 'int' for the type
这也可以写成:
Mapper<Integer> mapper = (Integer element) -> element * 2;
<T> T[] toArray(T[] a)
- THE WaterfalltoArray
能否用作lambda表达式,你是否在某个地方读到过使用lambdas的toArray
? - Naman(Integer element) -> element * 2
。我不是已经明确类型转换为 Integer 了吗?我不确定toArray
是否可以在 Lambda 中使用,但我只是困惑于无法使用方法级类型参数生成通用方法并在 Lambdas 中使用。 - THE Waterfall