Почему компилятор Java 8 не генерирует (байт-код) анонимные классы для ссылок на методы?

Java создает файл .class для каждого анонимного класса (классы с именами MyClass$1.class, MyClass$2.class..). Фактически, Java применяет то же самое для лямбда-выражений. Однако я не вижу сгенерированного класса, когда использую ссылку на метод в своем коде. Как Java разрешает их без создания анонимного класса?

Пример:

    List<String> names = Arrays.asList("Java8", "Lambdas", "In", "Action");
    Stream<String> s = names.stream();
    s.forEach(System.out::println);

person rpau    schedule 09.07.2015    source источник
comment
Вы должны перепроверить то, что вы говорите после «На самом деле». Что касается файлов классов, то нет никакой разницы между ссылками на методы и лямбда-выражениями. Ни один из не создает .class файлов… См. также здесь   -  person Holger    schedule 09.07.2015
comment
Хорошо спасибо! Извините, я не нашел этот вопрос   -  person rpau    schedule 09.07.2015