语法错误:No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing
錯誤
問題
No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing
沒有能被訪問到的 外部類E的實例。必須獲取一個外部類E的對象(例如: x.new A(), x是E的實例 )
原因:
原來我寫的內部類是動態的,也就是開頭以public class開頭。而主程序是public static class main。在Java中,類中的靜態方法不能直接調用動態方法。只有將某個內部類修飾為靜態類,然后才能夠在靜態類中調用該類的成員變量與成員方法。
解法:
在不做其他變動的情況下,最簡單的解決辦法是將public class改為public static class.
new 外部類().new 內部類();也可以。
并不一定需要將內部類修改為static的。 內部類可以這樣2種方法實例 EqualsObject.Transport transport = new EqualsObject.Transport(); EqualsObject.Transport transport = new EqualsObject().new Transport(); 而在外部main方法中必須這樣調用 EqualsObject.Transport obj1 = new EqualsObject().new Transport(); main里面的必須要new2個原因就是博主描述的原因。
總結
以上是生活随笔為你收集整理的语法错误:No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于COMSOL Multiphysic
- 下一篇: 计算机原理学习(一)