Java 如何为具有泛型方法的函数接口创建lambda表达式
我有一个功能接口Java 如何为具有泛型方法的函数接口创建lambda表达式,java,generics,lambda,java-8,Java,Generics,Lambda,Java 8,我有一个功能接口 @FunctionalInterface interface MyInterface { <T> T modify(Object); } 方法范围内的泛型不能用于lambda表达式。它会扔 非法lambda表达式:MyInterface类型的方法modify是泛型的 您需要在类范围内设置泛型 @functioninterface 接口MyInterface{ T修改(objectobj); } 然后按如下方式使用: 检查这个问题:将lambda分解成一
@FunctionalInterface
interface MyInterface {
<T> T modify(Object);
}
方法范围内的泛型不能用于lambda表达式。它会扔 非法lambda表达式:MyInterface类型的方法modify是泛型的 您需要在类范围内设置泛型
@functioninterface
接口MyInterface{
T修改(objectobj);
}
然后按如下方式使用:
检查这个问题:将lambda分解成一个方法,并使用一个方法引用。
MyInterface obj = new MyInterface(){
@Override
<T> T modify(Object obj){
return (T) obj
}
}
MyInterface obj -> {return (T) obj;}; // ! ERROR as T is undefined
MyInterface obj2 = o -> {return o;};