Оператор ::

В Java оператор ::, называемый оператором ссылки на метод (method reference), используется для передачи ссылки на метод в качестве аргумента в другой метод или выражение. Он обеспечивает компактный и выразительный способ передачи логики или функциональности вместо явного написания лямбда-выражения.

Существует несколько форм записи оператора ссылки на метод в Java:

  1. Ссылка на статический метод: ClassName::staticMethodName

  2. Ссылка на метод экземпляра: objectReference::instanceMethodName

  3. Ссылка на метод конструктора: ClassName::new

  4. Ссылка на метод массива: ArrayType[]::methodName

Примеры использования оператора ссылки на метод:

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

    // Пример использования оператора ссылки на статический метод
    List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
    names.forEach(System.out::println); // Вывод каждого элемента списка на консоль
  2. Ссылка на метод экземпляра:

    // Пример использования оператора ссылки на метод экземпляра
    String str = "Hello, world";
    Function<Integer, String> substringFunction = str::substring; // Получение ссылки на метод substring
    String result = substringFunction.apply(7); // Вызов метода substring(7) на строке str
    System.out.println(result); // Вывод результата на консоль: "world"
  3. Ссылка на метод конструктора:

    // Пример использования оператора ссылки на метод конструктора
    Supplier<String> supplier = String::new; // Получение ссылки на конструктор класса String
    String emptyString = supplier.get(); // Вызов конструктора String() для создания пустой строки
    System.out.println(emptyString); // Вывод пустой строки на консоль
  4. Ссылка на метод массива:

    // Пример использования оператора ссылки на метод массива
    Function<Integer, int[]> arrayCreator = int[]::new; // Получение ссылки на метод создания массива
    int[] newArray = arrayCreator.apply(5); // Создание массива из 5 элементов

Last updated