文件AbstractContainer.javaStatic Nested Class和作爲約束泛型類型不起作用
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
)?
關於第一:但爲什麼我必須導入靜態到**不**完全限定名稱?在課堂內我不需要那樣做。關於第二部分:完全限定名稱改變了什麼?我有一個靜態導入! – Kiel
您所寫的所有內容都可以正常工作,但它爲什麼會起作用? – Kiel