Eclipse 中的 Lambda 类型不匹配
Lambda type missmatch in Eclipse
我正在尝试使用 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 一直报错:
The method setOnClick(IconClick) in the type Icon is not applicable for the arguments ((Player p, Icon i, InventoryClickEvent e) -> {})
它甚至建议在图标 class 中创建一个带有参数 IconClick 的方法,但这是我正在尝试使用的方法。
(使用Java8,编译器兼容级别:1.8和Eclipse版本:2018-12(4.10.0))
您可能只是缺少 return 类型:
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'
我正在尝试使用 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 一直报错:
The method setOnClick(IconClick) in the type Icon is not applicable for the arguments ((Player p, Icon i, InventoryClickEvent e) -> {})
它甚至建议在图标 class 中创建一个带有参数 IconClick 的方法,但这是我正在尝试使用的方法。
(使用Java8,编译器兼容级别:1.8和Eclipse版本:2018-12(4.10.0))
您可能只是缺少 return 类型:
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'