2016-03-08 70 views
1

我聲明enum與分配給他們每個人的值。比較一個對象的值與枚舉值

public enum RATING { 
    G(0), P(12), M(16); 
    private int age; 

    private RATING(int age){ 
    this.age = age; 
    } 
} 

我想做這樣的事情,但它不能編譯。

... if (Customer.getAge() >= Film.getRating()) ... 

Customer.getAge()返回int; Film.getRating()返回一個enum RATING

如何比較對象的值與值enum

回答

2

添加以下方法來打分:

public int getAge() { 
    return age; 
} 

然後你就可以使用下面的行:

if (Customer.getAge() >= Film.getRating().getAge()) 
+0

真棒,謝謝。但爲什麼我不能'Film.getRating()。values()'而不是? – Matt

+0

@Matt你沒有值的方法。 – Stultuske

+0

爲什麼我問這是因爲我查看了JavaDoc - https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html。 – Matt

2

在這一點上,你沒有將它與enum的值進行比較,而是與枚舉本身進行比較。

更改枚舉這樣的:

public enum RATING { 
    G(0), P(12), M(16); 
    private int age; 

    private RATING(int age){ 
    this.age = age; 
    } 

    public int getAge(){ 
    return this.age; 
    } 
} 

和比較是這樣的:

if (Customer.getAge() >= Film.getRating().getAge()) 
2

添加到您的枚舉這種方法

public int getAge(){ 
    return age; 
    } 

並修改代碼

if (Customer.getAge() >= Film.getRating().getAge()) ..