Java找不到枚举变量
从我创建的枚举调用Severity.LOW变量时遇到问题。我尝试过导入它,将它包装在一个类中,然后导入包装器类。我不知道我做错了什么 下面是Main.java 这是我在编译Main.java时遇到的错误。 Severity.java是枚举,正确编译,没有任何错误Java找不到枚举变量,java,enums,Java,Enums,从我创建的枚举调用Severity.LOW变量时遇到问题。我尝试过导入它,将它包装在一个类中,然后导入包装器类。我不知道我做错了什么 下面是Main.java 这是我在编译Main.java时遇到的错误。 Severity.java是枚举,正确编译,没有任何错误 Main.java:43: error: cannot find symbol Allergy allergy = new Allergy("coughing", "Arzo
Main.java:43: error: cannot find symbol
Allergy allergy = new Allergy("coughing", "Arzoo", Severity.LOW, "Regular cough");
^
symbol: variable LOW
location: class Severity
1 error
这个错误告诉您,作为一种类型的严重性被发现,忽略它说的“类严重性”,即使javac知道它是一个枚举,它也会这样做,不幸的是,它不包含LOW变量 对此只有一种解释: javac在这里使用的严重性不是编译公共枚举严重性{HIGH,MEDIUM,LOW}的结果。检查该包或包含Main.java文件的包中的类路径中是否有其他名为Severity的类。然后,检查您是否正确地重新编译了Severity.java,因为过时的类文件也会弄乱它。然后检查类路径上是否没有旧的过时构建结果
注意:请注意,即使在修复此问题后,您的代码也无法工作,您正在滥用扫描仪。正确使用scanner的方法是要么只调用.nextLine,要么永远不调用它,强烈建议永远不调用它。如果要读取行,请在制作扫描仪后立即运行扫描仪。使用分隔符\r?\n;为了告诉扫描器您希望每个输入一个标记,而不是每个空格一个标记,在任何情况下,在接受命令行输入时,这都是一个好主意。扫描器默认将空格作为分隔符,这是一个愚蠢的错误,由于向后兼容性问题,无法修复。这是一个好习惯:做扫描仪?立即设置分隔符。然后,您可以直接调用next而不是nextLine来获取一行数据,然后它就可以工作了-您的take将无法工作,因为众所周知的问题是nextLine和nextAnythingElse混合使用。您是否编译了Severity.java?您使用的是IDE吗?我在包中有另一个名为Severity的类。成功了,谢谢!我也会把扫描仪修好。
package allergyProblem;
import java.util.*;
public enum Severity {HIGH, MEDIUM, LOW}
Main.java:43: error: cannot find symbol
Allergy allergy = new Allergy("coughing", "Arzoo", Severity.LOW, "Regular cough");
^
symbol: variable LOW
location: class Severity
1 error