我在文件enum
中定义了State.java
:
public enum State {
NONE, CHOOSINGMUD, PLAYING
}
我有一个公共课Server
,我可以通过State.NONE
访问枚举,这样就可以了。
但是,在Server
内我定义了一个公共内部类,当我尝试访问State.NONE
时,我得到一个cannot find symbol error
:
symbol: variable State
location: class Server
如何在此内部类中使用State
?是否有可能像我在Server
课程中那样直接这样做?在我看来,它喜欢在它的父类(State
)中寻找Server
。
这是我内部类的代码。我已将其简化,但此处的print语句将返回相同的错误:
public class ClientConnection extends Thread
{
private PlayerInterface player;
ClientConnection(PlayerInterface player) throws IOException
{
this.player = player;
System.out.println(State.NONE);
}
}
答案 0 :(得分:4)
您的State
班级与没有java.lang.Thread.State
字段的内部班级NONE
发生冲突。将您的枚举类重命名为其他内容,您的代码将起作用
答案 1 :(得分:1)
我刚刚用它创建了一个文件
public enum State {
on, off
}
然后是一个带有此文件的文件
public class SomeClass {
private static class SomeInnerClass{
State s = State.off;
public void doSomething(State state){
if(state == State.off){
//do something
}
}
}
}
似乎工作正常。我可以在内部类的类级别和方法中访问它。希望看到这个有帮助