Параметризованный общий список при фильтрации и сопоставленииJAVA

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

Сообщение Anonymous »

Я пытаюсь понять идею PECS в Java и не знаю, как применить эту идею в следующем примере:

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

package org.example;

import java.util.List;
import java.util.Optional;

interface Command { String name();}
class DeleteCommand implements Command {
@Override
public String name() {return "Delete command";}
}

interface CommandHandler {
boolean supportsCommand(Class klazz);
String commandName(C command);
}

class DeleteCommandHandlerImpl implements CommandHandler {
@Override
public boolean supportsCommand(Class klazz) {return DeleteCommand.class.isAssignableFrom(klazz);}
@Override
public String commandName(DeleteCommand command) {return command.name();}
}

public class Main {
public static void main(String[] args) {
Command toBeHandled = new DeleteCommand();
List knownCommands = List.of(new DeleteCommandHandlerImpl());
Optional result = knownCommands
.stream()
.filter(commandHandler -> commandHandler.supportsCommand(toBeHandled.getClass()))
.findFirst()
.map(commandHandler -> commandHandler.commandName(toBeHandled));
System.out.println(result);
}
}
У меня проблема со строкой ListknownCommands = List.of(new DeleteCommandHandlerImpl()); Это вызывает предупреждение компиляции, так как в CommandHandler отсутствует параметризованный класс.
Согласно PECS, я использую этот список, поэтому он должен быть List

Подробнее здесь: https://stackoverflow.com/questions/768 ... nd-mapping
Ответить

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

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

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

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

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