E是自定義的類別

Google了一下

最近在看Java,在編譯寫書上一個例子時,由於書上的代碼只有一部分,於是就自己補了一個內部類。結果編譯時出現:

No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing instance of type E(egxnew A() where x is an instance of E)

E指代我寫的那個內部類。根據提示,沒有可訪問的內部類E的實例,必須分配一個合適的內部類E的實例(如x.new A(),x必須是E的實例。)看著這句提示,我就納悶了,我已經用new實例化了這個類,為什麼還不行呢。於是百度谷歌了一下相關資料。原來我寫的內部類是動態的,也就是開頭以public class開頭。而主程序是public static class main。在Java中,類中的靜態方法不能直接調用動態方法。只有將某個內部類修飾為靜態類,然後才能夠在靜態類中調用該類的成員變量與成員方法。所以解決辦法是將public class改為public static class.在這裡記下這個問題,也方面遇到同樣問題的朋友查閱。

引用


創作者介紹

Mazs's Notes

cookiesp 發表在 痞客邦 PIXNET 留言(6) 人氣()


留言列表 (6)

發表留言
  • Alex
  • 謝謝你,我已經被這個問題綑住了好幾天。
  • andy
  • 感謝 我也遇到同樣問題
  • pong
  • 非常感謝,幫了大忙
  • Hegel
  • 感謝你
  • Hegel
  • 感謝你
  • 訪客
  • 感謝你,我卡很久