Несоответствие лямбда-типа в Eclipse - PullRequest
0 голосов
/ 10 февраля 2019

Я пытаюсь использовать лямбда-оператор, мне удалось сделать то же самое с другими методами, но этот выдает ошибку.

Методы, о которых идет речь:

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 продолжает выдавать эту ошибку:

Метод setOnClick (IconClick) в типе Icon не применим для аргументов ((Player p, Icon i, InventoryClickEvent e) -> {})

Он даже предлагает создать метод с аргументами IconClick в Iconкласс, но этот метод я пытаюсь использовать.

(Использование Java 8, уровень соответствия компилятора: 1.8 и версия Eclipse: 2018-12 (4.10.0))

1 Ответ

0 голосов
/ 10 февраля 2019

Вы можете просто пропустить тип возврата:

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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...