2011-12-03 159 views
0

我必須創建一個方法來測試兩個對象枚舉是否相等。比較對象枚舉

下面是代碼:

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內。

我該怎麼做?

+2

該代碼,即使有合適的,如果,則不會進行編譯。由於StatePass不是國家的實例。但是如果你需要檢查兩個對象是否相等,那麼就使用equals方法。 – Dunes

回答

1

可以使用==比較枚舉值,讓你的if可以成爲

if(StatePass.p == state) 

注:在構造函數中的第二個參數必須是一個StateClass而不是State或你永遠無法調用this.state=state

0

嘗試使用state.equals(StatePass.p)。你的問題在哪裏?

2

您可以同時使用equals()==比較Java的枚舉,所以你可以從

if(StatePass.p.equals(state)) 
選擇

if(StatePass.p == state) 

here更多信息