2012-12-05 47 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!"); 
    } 
}