-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

2 回答 2

0

您应该为枚举使用自己的枚举类。在我看来,这样做会是一个更干净的设计:

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

   private Locale(String value) {
       this.value = value;
   }
}
于 2012-12-05T09:03:59.120 回答
0

暂时忽略设计问题,您的原始代码没有任何问题。也许您的包声明有误?对我来说,以下代码编译得很好:

参数.java

package com;

public interface Params {

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

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

测试类.java

package com;

import com.Params.Locale;

public class TestClass {

  public void test(Locale locale) {
    System.out.println("Hello, World!");
  }
}
于 2012-12-05T09:09:14.727 回答