2012-11-07 53 views
0

可能重複:
difference method java using enum types靜態方法返回枚舉在Java

是可以計算2種枚舉類型的使用靜態方法的值之間的差異?枚舉代​​表甲板。 (即兩(2)黑桃,女王(10)心= 8)。

public enum Rank {TWO, THREE, FOUR, FIVE, SIX,SEVEN, EIGHT, NINE, TEN, 
        JACK, QUEEN, KING, ACE} 
public enum Suit {CLUBS, DIAMONDS, HEARTS, SPADES} 

我希望該方法返回的兩張牌... 不知道如何處理/有效地實現這之間的等級差別。謝謝

+2

當然這是可能的。有關枚舉的信息,請參閱ordinal()。 – nullpotent

+0

這是學校工作還是什麼?這是今天相對於卡片枚舉的第三個帖子... – dounyy

+0

@dounyy或同一個人問同樣的問題三次。 ;) –

回答

1
public static int diff(Rank first, Rank second){ 
    return Math.abs(first.ordinal() - second.ordinal() + someDefaultValue); 
} 
+2

@qwertyRocker一個'enum'只是一個類,因此它可以包含字段,非空構造函數等。與其依賴'ordinal()',您可能需要考慮手動爲每個枚舉賦值一個構造函數:'QUEEN(10)'等等。這樣,你也可以有重複的值(一個序號在每個枚舉類型中是唯一的)。請參閱http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html,特別是Planet枚舉(顯示如何聲明字段,方法和構造函數)。 – yshavit