无法使用简单的Enum示例

时间:2012-12-05 08:55:45

标签: java enums

我创建了一个简单的枚举

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;
    }

我使用

导入我的Locale枚举
import com.Params.Locale;

问题是我无法将其编译,它告诉我它无法解析Locale。即使我使用Params.Locale它也不起作用,无法解析名称。

2 个答案:

答案 0 :(得分:0)

你应该为枚举使用自己的枚举类。在我看来这样做会更清洁:

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

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

答案 1 :(得分: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!");
  }
}