Eclipse 中的 Lambda 类型不匹配

我正在尝试使用 lambda 运算符,我已经设法用其他方法做类似的事情,但是这个给出了一个错误。


有问题的方法:


public Icon setOnClick(IconClick e) {

    this.click = e;

    return this;

}

和:


public interface IconClick {

    boolean onClick(Player p, Icon i, InventoryClickEvent e);

}

在这里,我尝试使用 lambda:


.setOnClick((Player p, Icon i, InventoryClickEvent e) -> {

        //Code in here

    }));

但是 Eclipse 不断给出这个错误:


Icon 类型中的方法 setOnClick(IconClick) 不适用于参数 ((Player p, Icon i, InventoryClickEvent e) -> {})


它甚至建议在 Icon 类中创建一个带有参数 IconClick 的方法,但这是我正在尝试使用的方法。


(使用 Java 8,编译器合规级别:1.8 和 Eclipse 版本:2018-12 (4.10.0))


回首忆惘然
浏览 82回答 1
1回答

MMMHUHU

您可能只是缺少那里的返回类型:IconClick onClick = (Player p, Icon i, InventoryClickEvent e) -> {     // some logic in here     return false; // must return 'false' or 'true' };Icon icon = new Icon().setOnClick((p, i, e) -> false); // or 'onClick'
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java