Java Eclipse中的Lambda类型不匹配
我试图使用lambda操作符,我已经设法用其他方法做了类似的事情,但是这个方法给出了一个错误 有关方法:Java Eclipse中的Lambda类型不匹配,java,eclipse,lambda,functional-interface,Java,Eclipse,Lambda,Functional Interface,我试图使用lambda操作符,我已经设法用其他方法做了类似的事情,但是这个方法给出了一个错误 有关方法: public Icon setOnClick(IconClick e) { this.click = e; return this; } 以及: 在这里,我尝试使用lambda: .setOnClick((Player p, Icon i, InventoryClickEvent e) -> { //Code in here })); 但Ec
public Icon setOnClick(IconClick e) {
this.click = e;
return this;
}
以及:
在这里,我尝试使用lambda:
.setOnClick((Player p, Icon i, InventoryClickEvent e) -> {
//Code in here
}));
但Eclipse不断给出这样的错误:
类型图标中的方法setOnClick(IconClick)不适用于参数((播放器p,图标i,目录ClickEvent e)->{})
甚至有人建议在Icon类中创建一个参数为IconClick的方法,但我正试图使用这个方法
(使用Java 8,编译器符合性级别:1.8和Eclipse版本:2018-12(4.10.0))您可能只是缺少返回类型:
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'
你的程序编译了吗?Eclipse指出了一个错误,它不允许我编译它。然后试着从命令行编译它。抱歉,没有完全理解,你是说我应该在方法声明中添加一个默认的返回值吗?@HunterFP我想说你的lambda实现应该返回一个
boolean
值。
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'