我试图使用拉姆达运营商,我已成功地做类似的事情与其他方法,但是这一次是给了一个错误。
方法问题:
public Icon setOnClick(IconClick e) {
this.click = e;
return this;
}
和:
public interface IconClick {
boolean onClick(Player p, Icon i, InventoryClickEvent e);
}
在这里,我试图用拉姆达:
.setOnClick((Player p, Icon i, InventoryClickEvent e) -> {
//Code in here
}));
但是Eclipse一直给这个错误:
该方法设置的OnClick(点击图标)中的类型的图标是不适用的参数((玩家P,图标I,InventoryClickEvent E) - > {})
它找齐建议带参数的Icon类IconClick创建一个方法,但that`s方法我试图使用。
(使用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'