2012-12-05 45 views
-2

我有一個簡單枚舉創建無法獲得簡單枚舉示例工作

public interface Params 
{ 
    public enum Locale 
    { 
     UK("UK"), US("US"); 
     private String value; 

     private Locale(String value) { 
       this.value = value; 
     } 
    }; 

.... 

這裏是我的方法,我想修改採取Params.Locale屬性。

public void doErrorQuery(Locale locale, String p_listStr) 
    { 
     if (p_spellingList == null) 
     { 
     result.setError(true); 
     result.setErrorMessage("Null spelling list"); 
     return; 
    } 

導入我使用

import com.Params.Locale; 

問題是我不能得到這個編譯,它告訴我它無法解析的區域設置區域設置枚舉。即使我使用Params.Locale它不起作用,無法解析名稱。

+4

你確定該接口的包名'Params'是'COM'? – Thirler

+1

從void方法中移除'return'語句。 –

+1

你可以添加你的堆棧跟蹤嗎? – Miquel

回答

0

您應該爲枚舉使用自己的枚舉類。做到這一點將是一個更清潔的設計在我眼裏:

public enum Locale { 
    UK("UK"), US("US"); 
    private String value; 

    private Locale(String value) { 
     this.value = value; 
    } 
} 
0

忽略第二秒的設計問題,你的原代碼沒有錯。也許你在你的包聲明中犯了錯誤?對我來說,下面的代碼編譯就好:

Params.java

package com; 

public interface Params { 

    public enum Locale { 
    UK("UK"), US("US"); 
    private String value; 

    private Locale(String value) { 
     this.value = value; 
    } 
    } 
} 

TestClass.java

package com; 

import com.Params.Locale; 

public class TestClass { 

    public void test(Locale locale) { 
    System.out.println("Hello, World!"); 
    } 
}