Интерфейс переопределяет расширение метода функционального интерфейса по умолчанию и наличие абстрактного метода работаеJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Интерфейс переопределяет расширение метода функционального интерфейса по умолчанию и наличие абстрактного метода работае

Сообщение Anonymous »

Код: Выделить всё

@FunctionalInterface
interface StringConsumer extends Consumer {
@Override
public default void accept(String s) {
System.out.println(s.toUpperCase());
}
void print(String s);
}

public class Test {
public static void main(String[] args) {
StringConsumer stringConsumerImpl= s -> System.out.println(s.toLowerCase());
List list = Arrays.asList("Dr", "Mr", "Miss", "Mrs");
list.forEach(stringConsumerImpl);
}
}
Выход:
DR
MR
MISS
MRS
Итак, что же происходит в этот код действительно странный для меня. На самом деле я предоставляю реализацию метода печати, но когда я запускаю код, он фактически использует реализацию метода по умолчанию.
Я ожидал, что реализация печати будет работать.
Редактировать: при методе печати удаляется из StringConsumer, это вызывает ошибку компиляции в основном методе

Подробнее здесь: https://stackoverflow.com/questions/793 ... and-having
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»