在Eclipseλ类型不匹配

问题描述 投票:2回答:1

我试图使用拉姆达运营商,我已成功地做类似的事情与其他方法,但是这一次是给了一个错误。

方法问题:

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))

java eclipse lambda functional-interface
1个回答
1
投票

你可能只是有缺失的返回类型:

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'
© www.soinside.com 2019 - 2024. All rights reserved.