Возвращает конкретный тип коллекции в зависимости от типа аргумента.JAVA

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

Сообщение Anonymous »

Я пытаюсь написать преобразователь, который может принимать коллекцию и возвращать коллекцию. Эта часть проста, но я пытаюсь сделать так, чтобы возвращаемая коллекция имела тот же тип, что и входная.
Поэтому вызываем aToB(Set.of(new A( ))), например, вернет Set. И что еще более важно, я хочу, чтобы компилятор знал об этом.
Я пробовал использовать дженерики, но, похоже, это невозможно, поскольку я не могу параметризовать дженерики. Следующее не работает:

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

public  C aToB(C coll) {}
При таких вещах, как показано ниже, теряется тот факт, что коллекции должны быть одного типа, и компилятор в любом случае недоволен:

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

public  D aToB(C coll) {}
Я знаю, что это непрактичный случай и что мне нужно просто написать несколько методов, что я и сделал, но мне интересно, возможно ли это или нет.
В качестве побочного вопроса меня также интересует, почему следующий код также не компилируется, говоря, что я предоставляю List, когда требуется C.

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

public  C aaa() {
List a = List.of("AAA");
return a;
}
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/789 ... f-argument
Ответить

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

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

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

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

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