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