gpt4 book ai didi

java - 为什么从 main 方法访问 Enum 时会出现编译错误?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:23:47 24 4
gpt4 key购买 nike

所以我有点困惑,因为我以前从未使用过枚举。我想在我的主要方法中使用这个枚举。出于某种原因,我不能(我什至尝试在 main 中执行 Status s; 时,我总是不断收到错误消息)。然而,我可以从 main 调用我的 TestingEnum 方法,当然这有效......但我 100% 确定以这种方式使用枚举是完全错误的。有人能告诉我如何在 main 中正确使用它吗?

如果我尝试这样做: Status s;在我的主要方法中,我得到这个错误 - “connot find symbol Status s;”

背景:Java 和枚举的新手...

class MyClass {
public Status s;

public enum Status {
STATUS_OPEN(1),
STATUS_STARTED(2),
STATUS_INPROGRESS(3),
STATUS_ONHOLD(4),
STATUS_COMPLETED(5),
STATUS_CLOSED(6);

private final int status;

Status(int stat) {
this.status = stat;
}

public int getStatus() {
return this.status;
}

}

private void setStatus(Status stat) {
s = stat;
}

public void TestingEnum() {
Status myStat = Status.STATUS_ONHOLD;
setStatus(myStat);
}

@Override
public String toString() {
StringBuilder result = new StringBuilder();
String NEW_LINE = System.getProperty("line.separator");

result.append(NEW_LINE + " Status: " + s + NEW_LINE);

return result.toString();
}
}

public class Main {
public static void main(String[] args) {
MyClass obj = new MyClass();

// PROBLEM SETTING STATUS HERE
// I can't do this:
Status s;

}
}

最佳答案

将枚​​举移动到它自己的类文件中,或通过对封闭类的引用来访问它。

看起来您将 Enum 定义为另一个类的内部类。如果您这样做,则需要使用语法 OuterClass.Status 来访问它。你把它公开了,这样就可以了。您可以从类中毫无问题地访问它,因为它包含在父类的范围内。

因此您可以在 Status 之前添加 OuterClass.,或者您可以像任何其他类一样将 Enum 移动到它自己的文件中。

关于java - 为什么从 main 方法访问 Enum 时会出现编译错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8837226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com