Я относительно масштабирован на уровне начинающих знаний в Advanced Java Generics. Я хотел, чтобы определить интерфейс что-то вроде этогоОпределить интерфейс с использованием нескольких связанных типов Java Generics
public interface Transformer {
<T extends String & List<String>> T transform(String input) throws
IOException;
}
Мой класс Осуществление А, как показано ниже:
public Class A implements Transformer{
....
....
@Override
public <T extends String & List<String>> T transform(String input) throws IOException {
String response = "a";
return response; // compilation error "Incompatible Types: Required T but found java.lang.String"
}
}
То, что я хочу иметь: Класс реализации должен быть в состоянии пройти входной строки и Тип возврата может быть строкой или списком. Класс реализации полностью предоставляется свобода выбора любого из типов возврата.
Вопрос: 1. Почему возникает ошибка компиляции «Несовместимые типы: Требуется T, но найдена java.lang.String»?
Возвращаемое значение метода преобразования требует расширения строки (которая не может быть окончательной, поскольку строка является окончательной) и реализовать интерфейс List. Я очень сомневаюсь в том, что вы хотели ... вы должны перефразировать свой вопрос, чтобы ваша цель была ясна ... –