这个问题已经在这里有了答案: > Lambda Expression and generic method 4个
我有以下界面:
public interface Mapper {
public <T> T map(T element);
}
而当我做Mapper mapper =(int n)-> n * 2;
我明白了:
Illegal lambda expression: Method map of type Mapper is generic
我在这里想念什么?如何创建在lambda表达式中使用的通用方法?
最佳答案
您应该将定义更改为
原文链接:https://www.f2er.com/java/532795.htmlpublic 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;