2013-02-25 78 views
1

不知道這是一個錯誤還是如果我有點瘋狂..我試圖做一些Eclipse jpage剪貼簿中的枚舉的快速測試(使用JDK 1.7.0_02,Win XP 64位是,Eclipse的Juno)在Eclipse Scrapbook中枚舉

class A { 
    enum Month {JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC} 
} 
A a = new A(); 

當我嘗試執行此我得到:

成員枚舉月只能在頂層類或接口

內部定義,這是怎麼了如果我將枚舉移出類定義。

enum Month {JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC} 
Month.valueOf("JAN"); 

這些是我得到了上述的錯誤:

成員枚舉月只能在頂層類或接口

月不能得到解決內部定義

+1

假設類'A'是一個內部類,將它移動到一個外部類,這應該解決它。 – Reimeus 2013-02-26 00:03:44

+0

這似乎是一個與Eclipse實際將您的剪貼簿代碼包裝到要運行的類相關的錯誤。結合只有一部分修飾符可應用於剪貼簿中定義的類的事實。這個解決方案也會把類枚舉從類定義中解放出來。 – Perception 2013-02-26 00:11:45

+0

Hi @Perception - 如果我在課堂外移動枚舉,我會得到幾乎相同的錯誤。我更新了原文,以反映這一點。 – 2013-02-26 00:25:52

回答

0

我相信做到這一點的唯一方法是將枚舉本身從jpage移到一個新類中。所以我使這個類,像這樣:

package test; 
public class Test { 
    public enum Month { 
     JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC; 
    }; 
} 

然後在jpage:

  1. 點擊右鍵,選擇「設置進口」
  2. 點擊「添加包」,並輸入/選擇測試包。

然後我jpage將只有下面的代碼:

Test.Month.valueOf("JAN"); 
+0

不幸的是,這種情況下使用Eclipse Scrapbook文件的目的是失敗的。如果我必須爲這個枚舉創建一個新類,那麼我可能忘記了jpage,將一個主要方法添加到Test中,並將其餘的測試代碼放在那裏.. – 2013-02-27 07:46:10

+0

在這裏寫下了這個:http://robertmarkbramprogrammer.blogspot。 com.au/2013/02/enums-in-eclipse-scrapbook-page.html。另外,如果這是一個可以修復的錯誤:https://bugs.eclipse.org/bugs/show_bug.cgi?id = 401883 – 2013-02-28 03:08:14

0

嗯,對不起,如果有什麼,我會說是有點愚蠢,但你不應該聲明枚舉作爲公衆A級會員?類內的枚舉本質上是靜態的,但不公開。在你的第一個例子中,如果你試圖將其聲明爲public,會發生什麼?