Go to the home page  / Java  / Функциональное программирование  / Ссылки на методы  / Ссылка на статический метод

Ссылка на статический метод

Igor Lazarevsky, 2022.02.04 12:14

Позволяет обратиться к статическому методу, определенному в классе.

ContainingClass::staticMethodName  

Например, если в классе Main7 у нас есть статический метод printHello(), то мы можем получить на него ссылку вот так Main7::printHello.

Что значит получить ссылку? Так же, как получаем привычным образом ссылку на любой объект, вроде классического Duck duck = new Duck().

Только раньше мы получали ссылки на весь объект целиком, а теперь на его часть, на метод.

Получив ссылку и сохранив ее в переменной

FunctionalInterface printHello = Main7::printHello;

Мы можем ее использовать, например просто вызвать сам метод

printHello();

Полный листинг:


public class Main7 {
    static void printHello() {
        System.out.println("Hello");
    }

    public static void main(String[] args) {
        FunctionalInterface printHello = Main7::printHello;
        printHello();
    }
}

Но чаще нам такая ссылка нужна, чтобы передать какой-то метод (точнее ссылку на него) в другой метод в виде параметра.

Igor Lazarevsky, 2022.02.04 12:56