1. 程式人生 > >Java內部類呼叫報錯

Java內部類呼叫報錯

最近在看Java,在編譯寫書上一個例子時,由於書上的程式碼只有一部分,於是就自己補了一個內部類。結果編譯時出現:No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing instance of typeE(e.g.  x.new A() where x is an instance of E). E指代我寫的那個內部類。
於是百度谷歌了一下相關資料。原來我寫的內部類是動態的,也就是開頭以public class開頭。而主程式是public static class main。在Java中,類中的靜態方法不能直接呼叫動態方法。
只有將某個內部類修飾為靜態類,然後才能夠在靜態類中呼叫該類的成員變數與成員方法。所以不做其他變動的情況下,最簡單的解決辦法是將publicclass改為public static class