Назад к вопросам
Middle
71
questionbank

Какие виды ссылок на методы ты знаешь?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

В Java 8 появились следующие виды Method Reference:

  1. Ссылка на статический метод: ClassName::staticMethodName
  2. Ссылка на метод экземпляра объекта: object::instanceMethodName
  3. Ссылка на метод экземпляра произвольного объекта определенного типа: ClassName::instanceMethodName
  4. Ссылка на конструктор: 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();