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如果不编译,将没有堆栈跟踪。