Java 为什么不能正确解析此枚举类型?
以下java代码不在eclipse中编译。我做错了什么?如果该方法只返回一个Java 为什么不能正确解析此枚举类型?,java,enums,Java,Enums,以下java代码不在eclipse中编译。我做错了什么?如果该方法只返回一个int而不是enum,则一切正常,因此基本上设置为ok。问题在于引入枚举返回类型 public class myclass { public enum mytype { mytype2, mytype1, }; public static mytype retmytype() { return mytype2; } } //in another class mycla
int
而不是enum
,则一切正常,因此基本上设置为ok。问题在于引入枚举返回类型
public class myclass {
public enum mytype {
mytype2,
mytype1,
};
public static mytype retmytype() {
return mytype2;
}
}
//in another class
myclass.mytype t = myclass.retmytype(); //ERROR - myclass.mytype cannot be solved
尝试替换
返回mytype2
by返回mytype.mytype2代码>
顺便说一下,您应该遵循Java命名约定;)
我认为您忘记了一个main方法(或者您的程序流中任何其他被调用的方法)。
试试这个:
public class myclass {
public enum mytype {
mytype2,
mytype1,
};
public static mytype retmytype() {
return mytype.mytype2;
}
public static void main(String[] args){
myclass.mytype t = myclass.retmytype();
}
}
使用camelCase
man@LuiggiMendoza内部枚举始终是静态的,即使它不是静态的specified@LuiggiMendoza如果枚举是一个类的成员,它是隐式的static@Daniel对不起,我忘了一会儿。除此之外,在方法retmytype()
中,您应该返回mytype.mytype2代码>(名称必须是限定的),这应该有效。错误的原因是你没有给我们看的东西。您是否有一个旧的类文件myclass.class
被提取?这些类在不同的包中吗?您是否正确导入了myclass
?@glutz您可能会忘记用main方法包围您的调用;)例如。你可能会接到“空中”的电话。