Подтвердить что ты не робот

Ссылка на метод Java Lambda не работает

Мой оригинальный код:

private static void onClicked(MouseEvent event) {
    // code to execute
}

// somewhere else in the program:
setOnMouseClicked(event -> SomeClass.onClicked(event));

Но IntelliJ говорит: "Может быть заменен ссылкой на метод", который я не слишком уверен, как это сделать. Я думал, что сделаю это:

setOnMouseClicked(event -> SomeClass::onClicked);

Но потом это говорит мне: "void не является функциональным интерфейсом", но я не хочу ничего возвращать. Я просто хочу, чтобы обработчик выполнялся. Как я могу это исправить?

Спасибо!

4b9b3361

Ответ 1

Вы смешиваете выражение лямбда с ссылкой на метод.

Изменить

setOnMouseClicked(event -> SomeClass::onClicked);

к

setOnMouseClicked(SomeClass::onClicked);