compare To object enum
我必须创建一个方法来测试两个对象枚举是否相等。
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public Passenger {
private String name_pass ;
public enum StatePass {
b,c,p
};
private StatePass state ;
public Passenger (String name_pass,StatePass state ){
this. name_pass=name_pass ;
this. state=state ;
}
public boolean isConfirmed (){
if()
return true;
return false;
}
} |
在if()中,我必须检查字段状态是否等于p。
我该怎么做?
- 即使有了适当的if,代码也无法编译。因为StatePass不是State的实例。但是如果需要检查两个对象是否相等,那么只需使用equals方法。
你可以同时使用EDCOX1 5和EDCOX1 6来比较Java枚举,所以你可以从
1
| if(StatePass.p.equals(state)) |
或
1
| if(StatePass.p == state) |
在这里查找更多信息
您可以使用==比较枚举值,这样您的if可以变为
1
| if( StatePass.p == state ) |
注意:在构造函数中,第二个参数必须是StateClass而不是State,否则不能调用this.state=state。
尝试使用state.equals(StatePass.p)。你的问题在哪里?