Java Can';无法使简单的枚举示例正常工作

Java Can';无法使简单的枚举示例正常工作,java,enums,Java,Enums,我创建了一个简单的枚举 public interface Params { public enum Locale { UK("UK"), US("US"); private String value; private Locale(String value) { this.value = value; } }; .... 这是我想要修改的方法,以获取Params.Locale属性 publi

我创建了一个简单的枚举

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,也无法解析名称。

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

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

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

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

Params.java

package com;

public interface Params {

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

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

import com.Params.Locale;

public class TestClass {

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

package com;

public interface Params {

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

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

import com.Params.Locale;

public class TestClass {

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

你确定接口
Params
的包名是'com'吗?请从void方法中删除
return
语句。你能添加堆栈跟踪吗?为什么不将区域设置枚举声明为自己的
enum
,它不包含在
Params
中?@Miquel如果不编译,将没有堆栈跟踪。