我有一个奇怪的问题,当检查两个看似相同的字符串时,if语句的计算结果不为true。我有以下方法:
public void render(Cell.Context context, TaskSchedule object, SafeHtmlBuilder sb) {
String taskName = getValue(object);
System.out.println(taskName);
if (String.valueOf(ServerTask.RUN_CYME_EXPORT).equals(taskName)) {
taskName = " " + taskName;
}
}
taskName将打印出“ Run CYME Export”,枚举ServerTask如下所示:
public enum ServerTask {
.....
RUN_CYME_EXPORT("Run CYME Export"),
.....
}
打印的字符串和枚举中的字符串是完全相同的拼写。我也尝试这样做无济于事:
if(String.valueOf(ServerTask.RUN_CYME_EXPORT).equals(taskName)){
.....
}
最佳答案
枚举应类似于:
public enum ServerTask {
RUN_CYME_EXPORT("Run CYME Export");
private final String value;
private ServerTask(String aValue) {this.value = aValue;}
public String value() {return value;}
}
所以从外面看:
if (ServerTask.RUN_CYME_EXPORT.value().equals(taskName)) {
// whatever
}
关于java - Java字符串与枚举匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30397632/