Назад к вопросам
Middle
71
questionbank
Какие виды ссылок на методы ты знаешь?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В Java 8 появились следующие виды Method Reference:
- Ссылка на статический метод:
ClassName::staticMethodName - Ссылка на метод экземпляра объекта:
object::instanceMethodName - Ссылка на метод экземпляра произвольного объекта определенного типа:
ClassName::instanceMethodName - Ссылка на конструктор:
ClassName::new
Примеры:
// 1. Ссылка на статический метод
Consumer<List<Integer>> sortAction = Collections::sort;
// 2. Ссылка на метод экземпляра объекта
List<String> names = Arrays.asList("Alice", "Bob");
Consumer<String> printName = System.out::println;
names.forEach(printName);
// 3. Ссылка на метод экземпляра произвольного объекта определенного типа
// Здесь метод length() вызывается на каждом элементе списка String
List<String> words = Arrays.asList("hello", "world", "java");
List<Integer> lengths = words.stream()
.map(String::length) // Ссылка на метод экземпляра произвольного объекта String
.collect(Collectors.toList());
// 4. Ссылка на конструктор
Supplier<ArrayList<String>> listCreator = ArrayList::new;
List<String> newList = listCreator.get();