我有一个枚举声明如下 -
public enum Status {
REQ ("URL1"),
NOT ("URL2"),
GET ("URL3");
String getURL;
Status(String getURL) {
this.getURL = getURL;
}
}
我班上的一个领域:
private Status status;
我有一个函数可以根据枚举类型检索 URL,如下所示 -
public String viewURL() {
switch (status) {
case REQ:
return REQ.getURL;
case NOT:
return NOT.getURL;
case GET:
return GET.getURL;
}
return null;
}
当
NullPointerException
是status
时,我在这种方法中遇到了null
。
然而,当我使用 if 语句实现相同的功能时,它工作正常 -
public String viewURL() {
if (status == REQ) {
return REQ.getURL;
}
if (status == NOT) {
return NOT.getURL;
}
if (status == GET) {
return GET.getURL;
}
return null;
}
无法理解我哪里出错了。任何帮助将不胜感激!
对重构的任何帮助也表示赞赏!