相关疑难解决方法(0)

无法将泛型方法的功能接口转换为lambda表达式

无法将泛型方法的功能接口转换为lambda表达式.
以下代码正在运行.它没有lambda表达式,即使用匿名类.

public interface Pro{
    public <T> void callee(T t);
}

public void fun(Pro obj){}


public void implement() {
    fun(new Pro() {
        @Override
        public <Integer> void callee(Integer t){}
    });
}
Run Code Online (Sandbox Code Playgroud)

我无法理解如何使用lambda表达式而不是匿名类.
在自己尝试之后,我使用了netbeans中显示的提示.我使用所示的灯泡来做到这一点.

在此输入图像描述

这就是我得到的,一个错误.

public void implement() {
    fun((Integer t) -> {
    });
}
Run Code Online (Sandbox Code Playgroud)

它显示错误.这里使用的正确lambda表达式是什么?
这是错误:

one\LambdaScopeTest.java:18: error: incompatible types: invalid functional descriptor for lambda expression
    fun((Integer t) -> {
        ^
method <T>(T)void in interface Pro is generic
where T is a type-variable:
     T extends Object declared in method <T>callee(T)
Note: …
Run Code Online (Sandbox Code Playgroud)

java generics lambda

3
推荐指数
1
解决办法
2390
查看次数

标签 统计

generics ×1

java ×1

lambda ×1