java.util.Function
не может представлять задачу Runnable
, поскольку функция принимает аргумент и что-то возвращает, и наоборот, метод Runnable.run
не принимает аргумента и ничего не возвращает.Даже если вы чувствуете, что Runnable
в некоторой степени похож на Function<Void, Void>
, даже это предположение неверно по той же причине.
Учитывая, что Runnable
- это единственный интерфейс абстрактного метода (он имееттолько метод run), вы можете просто реализовать его с помощью лямбда-выражения.Также обратите внимание, что эта лямбда является просто более лаконичным синтаксическим сахаром для ортодоксальных анонимных внутренних классов.Вот как это выглядит.
Runnable task = () -> System.out.println("My task");
Вы можете использовать этот экземпляр Runnable
как обычную команду Runnable
в своей программе.Вот такой пример использования.
Thread t = new Thread(task);
t.start();