文件AbstractContainer.java
package container;
import static container.AbstractContainer.*;
public abstract class AbstractContainer<ElementType extends AbstractElement> {
public static abstract class AbstractElement {
}
}
文件ConcreteElement.java
package container;
import static container.ConcreteContainer.*;
import static container.AbstractContainer.*;
public class ConcreteContainer extends AbstractContainer<ConcreteElement> {
public static class ConcreteElement extends AbstractElement {
}
}
这段代码给了我一个编译错误:
java: type argument container.ConcreteContainer.ConcreteElement is not within bounds of type-variable ElementType
但 IDE 没有发现任何问题(IDEA 12)。
第一:这里发生了什么?
第二个问题,在AbstractContainer.java为什么我必须静态导入嵌套类,这显然在范围内,才能在泛型类型(extends AbstractElement
而不是extends AbstractContainer.AbstractElement
)中使用它?