【发布时间】:2010-02-18 21:24:47
【问题描述】:
我以为我明白这一点,但显然不是......
我有一个这样的方法签名:
void doSomething(List<TypeA> typeAs){...}
List<TypeA<TypeB>> getTypeBTypeAs(){...}
但如果我试着打电话
doSomething(getTypeBTypeAs());
我得到一个编译错误:“类型...中的方法 doSomething(List) 不适用于参数 (List>)”
但是,如果我将doSomething 的签名更改为
void doSomething(List<TypeA<?>> typeAs){...}
还是不行,但是
void doSomething(List typeAs){...}
显然它可以在我绕过泛型时起作用。
这看起来很奇怪。
有人可以填写吗?
另外,在这种情况下,我希望doSomething 可以处理包含任何泛型类型的 TypeAs 的任何 List;未定义、TypeB、TypeC 等。
谢谢。
【问题讨论】: