java窗口只能点一个_java – 为什么界面只能在顶级类中声明?
Won’t inner class become top-level class if I put it into another Class file?
不,它仍然是一個內部類,文件名指示(IIRC它是OuterClass $InnerClass.class).
內部類可以訪問外部類的屬性,即它們依賴于它們的外部類’實例.使用界面,您無法做到這一點.想到一個完全不相關的類,必須由相應的外部類’實例創建.如果外部類不知道誰實現了該接口,那該怎么做?
您可以做的是在外部類中聲明靜態接口,因此僅將外部用作命名空間:
public class OuterClass {
public static interface InnerInterface { //protected and private would be fine too,depending on what makes sense
}
}
編輯:實際上,我誤解了問題,因為界面是靜態的,這里是一個更新的代碼片段:
public class OuterClass {
public static InnerClass { //static inner class making OuterClass just be a namespace
public interface InnerInnerInterface { //protected and private would be fine too,depending on what makes sense
}
}
}
作為一種解決方法,您可以定義一個抽象內部內部類,其缺點是您必須堅持單個繼承約束.
總結
以上是生活随笔為你收集整理的java窗口只能点一个_java – 为什么界面只能在顶级类中声明?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 排序算法 --- 希尔排序
- 下一篇: android webview 加载本地