Оператор ::
В Java оператор ::, называемый оператором ссылки на метод (method reference), используется для передачи ссылки на метод в качестве аргумента в другой метод или выражение. Он обеспечивает компактный и выразительный способ передачи логики или функциональности вместо явного написания лямбда-выражения.
Существует несколько форм записи оператора ссылки на метод в Java:
- Ссылка на статический метод: - ClassName::staticMethodName
- Ссылка на метод экземпляра: - objectReference::instanceMethodName
- Ссылка на метод конструктора: - ClassName::new
- Ссылка на метод массива: - ArrayType[]::methodName
Примеры использования оператора ссылки на метод:
- Ссылка на статический метод: - // Пример использования оператора ссылки на статический метод List<String> names = Arrays.asList("Alice", "Bob", "Charlie"); names.forEach(System.out::println); // Вывод каждого элемента списка на консоль
- Ссылка на метод экземпляра: - // Пример использования оператора ссылки на метод экземпляра String str = "Hello, world"; Function<Integer, String> substringFunction = str::substring; // Получение ссылки на метод substring String result = substringFunction.apply(7); // Вызов метода substring(7) на строке str System.out.println(result); // Вывод результата на консоль: "world"
- Ссылка на метод конструктора: - // Пример использования оператора ссылки на метод конструктора Supplier<String> supplier = String::new; // Получение ссылки на конструктор класса String String emptyString = supplier.get(); // Вызов конструктора String() для создания пустой строки System.out.println(emptyString); // Вывод пустой строки на консоль
- Ссылка на метод массива: - // Пример использования оператора ссылки на метод массива Function<Integer, int[]> arrayCreator = int[]::new; // Получение ссылки на метод создания массива int[] newArray = arrayCreator.apply(5); // Создание массива из 5 элементов
Last updated
Was this helpful?
