Java 8 lambda通用接口方法

jac*_*yin 5 java generics lambda interface

@FunctionalInterface
public interface GenericFunctionalInterface {
  public <T> T genericMethod();
}
Run Code Online (Sandbox Code Playgroud)

我有@FunctionalInterface,它有一个通用的方法.

如何使用和Lambda表达式来表示此接口?

我尝试下面的代码,但它不起作用,

GenericFunctionalInterface gfi = () -> {return "sss";};
Run Code Online (Sandbox Code Playgroud)

我遇到了编译错误:非法的lambda表达式:GenericFunctionalInterface类型的方法genericMethod是通用的

我在哪里可以放置类型信息?

Era*_*ran 8

通用(非遗传)类型参数应在接口级别声明,而不是在方法级别:

public interface GenericFunctionalInterface<T> {
  public T genericMethod();
}

GenericFunctionalInterface<String> gfi = () -> {return "sss";};
Run Code Online (Sandbox Code Playgroud)