的返回类型我返回一个基类的集合的方法:有没有办法迫使Arrays.asList
import java.util.*;
class Base { }
class Derived extends Base { }
Collection<Base> getCollection()
{
return Arrays.asList(new Derived(),
new Derived());
}
这无法编译,为Arrays.asList
返回类型(List<Derived>
)不不匹配方法的返回类型(Collection<Base>
)。我明白为什么会发生这种情况:由于泛型类型是不同的,因此这两个类不会被继承关联。
有许多方法可以修改编译器错误,从将方法的返回类型更改为不使用Arrays.asList将其中一个派生对象转换为Base。
有没有办法告诉编译器在解析Arrays.asList调用的泛型类型时使用不同但兼容的类型? (我一直在尝试使用此模式,运行到这个问题,所以如果有一种方法,使其工作,我想知道这一点。)
我还以为你可以不喜欢
Collection<Base> getCollection()
{
return Arrays.asList<Base>(new Derived(),
new Derived());
}
当我尝试编译那个(java 6)时,编译器会抱怨它在逗号处期待'''。
阵列。 asList –
2013-04-03 22:32:16