У меня есть класс Identifier<T>
, который по существу представляет собой безопасную по типу оболочку вокруг UUID (поэтому класс Foo
содержит Identifier<Foo>
).Как передать Список <Идентификатор <Foo>> в метод со списком <Идентификатор <?>> параметр?
Класс FooStore
имеет метод List<Identifier<Foo>> bulkReadIdentifiers()
.
В другом классе мне нужно превратить этот List<Identifier<Foo>>
в List<UUID>
. Реализация метода, который делает это для Foo
, тривиальна, но как объявить метод таким образом, чтобы он работал для произвольных классов, т. Е. Bar
вместо Foo
?
Метод List<UUID> extractUuids(List<Identifier<?>> identifiers)
вызывает ошибки компиляции, поскольку ?
не соответствует Foo
. Можно ли это решить без использования взлома, который включает в себя сырые списки и/или @SuppressWarnings
?
List <идентификатор> extends T> идентификаторов? или Список <Идентификатор extends knownSuperClassOfFooAndBar >> идентификаторы –
обе версии до сих пор не скомпилированы :-( –