2012-11-07 50 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