【发布时间】:2014-06-13 15:06:12
【问题描述】:
public interface Foo<E> {
public void blah(E e);
}
public class MyClass<E> {
private final Foo<E>[] fooArray = new Foo<E>[8]; // does not compile!
// (...)
}
解决泛型限制的正确方法是什么?
或者也许这不是限制,我错过了什么?
【问题讨论】:
-
如果你尝试“new Foo
[8]”看看会发生什么?您的实例化需要具体。 -
@JamesBlack 如果你尝试
new Foo<Integer>[8],你仍然会得到一个编译错误 -
@chrisapotek 不要添加诸如 this is not a duplicate 之类的内容,这种编辑只会激怒用户。
-
它是重复的,因为它仍然是由相同的基本问题引起的,但我不会为它与你争吵。这个故事的真正寓意是数组和泛型不能很好地结合在一起。最好使用集合。