我有一个Collection<T>
。我有一个实现接口UManager的类TManager,该接口具有方法getCollection()
,需要返回一个Collection<U>
,其中U是一个接口,而T是实现U的类。
除了强制转换之外,例如return (Collection<U>)Tcoll;
,是否有更正确的处理方式?
我在这里控制所有4个类/接口。在声明UManager.getCollection
时,我错了吗?
public Collection<U> getCollection();
应该这样做:
public Collection<? extends U> getCollection()
?
U
还是Collection<U>
?至少,类/方法必须被指示 T 是 U 的实现。 - BalusCU
和T
实际上是接口和实现类的名称,还是只是通用类型? - BalusCMap<String, T> map;
,所以我只想返回map.values()
。 - Jason S