【问题标题】:compare To object enum比较对象枚举
【发布时间】:2023-03-17 21:23:01
【问题描述】:

我必须创建一个方法来测试两个对象枚举是否相等。

代码如下:

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 方法。

标签: java


【解决方案1】:

您可以同时使用equals()== 来比较Java 枚举,因此您可以选择

if(StatePass.p.equals(state))

if(StatePass.p == state)

查看here了解更多信息

【讨论】:

    【解决方案2】:

    您可以使用 == 比较枚举值,因此您的 if 可以变为

    if( StatePass.p == state )
    

    注意:在构造函数中,您的第二个参数必须是 StateClass 而不是 State,否则您永远不能调用 this.state=state

    【讨论】:

      【解决方案3】:

      尝试使用state.equals(StatePass.p)。你的问题在哪里?

      【讨论】:

        猜你喜欢
        • 2017-03-22
        • 2012-05-04
        • 2023-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-03
        • 2014-03-15
        相关资源
        最近更新 更多