我有一个像下面这样的枚举列表 -
List<Status> statusList;
状态定义如下:
enum Status { YES , NO , MAYBE }
这个列表包含:
Status stat = Status.YES;
statusList.add(stat);
我有一个变量
Status statusVar = Status.YES;
我试图进行如下比较,但它没有按照我的预期工作,因为它在比较引用。下面的代码返回false。请问你能否提供一个解决方案?
statusList.contains(statusVar)
编辑:以下是不起作用的代码。状态是字符串而不是枚举。
import java.util.ArrayList;
import java.util.List;
public class Test {
private enum Status {
YES , NO , MAYBE
}
public static void main (String[] args){
List<Status> statusList = new ArrayList<Status>();
String status = "YES";
statusList.add(Status.YES);
if(statusList.contains(status)){
System.out.println(" Yes ");
} else {
System.out.println(" No ");
}
}
}
if(statusList.contains(Status.valueOf(status))){
将字符串转换为相应的枚举。 - JB Nizet