我确定这已经被回答过了,但我真的找不到。
我有一个java类SomeClass和一个抽象类SomeSuperClass。 SomeClass扩展了SomeSuperClass。
另一抽象方法具有返回Collection< SomeSuperClass>的方法。在一个实现类中,我有一个Collection< SomeClass>我的收藏
我明白我不能只返回myCollection,因为Collection< SomeClass>不会从Collection< SomeSuperClass> ;.继承。不过,我知道myCollection中的所有内容都是一个SomeSuperClass,因为毕竟它们是SomeClass对象,它扩展了SomeSuperClass。 我该怎么做这个工作? 即我想要
public class A
{
private Collection myCollection;
public Collection getCollection()
{
return myCollection; //compile error!
}
}
我找到的唯一方法是通过非泛型类型进行转换,并获取未经检查的警告以及什么。一定要有一个更优雅的方式呢?我觉得也不需要使用Collections.checkedSet()和朋友,因为它是静态地确定返回的集合只包含SomeClass对象(这不是这种情况下,而不是上传,而不是我在做什么)。我失踪了什么
谢谢!