В следующем примере программы печатается Hello
. метод exampleMethod(Runnable toRun)
имеет параметр типа Runnable. Указатель на функцию MyTest::sayHello
не имеет метода run. Как это выполнено?
public class MyTest {
// Method that takes a "method" as argument
static void exampleMethod(Runnable toRun) {
toRun.run();
}
// Method to pass
static void sayHello() {
System.out.println("Hello");
}
public static void main(String[] args) throws Exception {
exampleMethod(MyTest::sayHello); // prints "Hello"
}
}