如何比较两个枚举类型?

13 浏览
0 Comments

如何比较两个枚举类型?

我有一个名为PawnColor的枚举,它包含以下内容:\n

public enum PawnColor {
    black, white, none, illegal
}

\n如果我有以下方法,如何检查当前PawnColor实例的颜色呢?\n

public double ratePosition (PawnColor ratingFor) {
    // ...
}

\n所以如果`ratingFor`的颜色是`illegal`,我该如何检查呢?我以前从未使用过枚举,我尝试了以下代码,但没有成功:\n

if(ratingFor.equals(illegal)) {
    System.out.println("Something has gone wrong.");
}

\n显然这行不通,我应该如何确保当PawnColor ratingFor是非法时,能够得到错误消息?

0
0 Comments

在比较两个枚举类型时,需要将枚举项的名称引用为枚举类型.枚举项的名称。可以使用"=="运算符进行比较,也可以使用equals()方法进行比较。

比较两个枚举类型时,可以使用以下代码:

if(ratingFor == PawnColor.illegal)

或者使用equals()方法进行比较:

if(PawnColor.illegal.equals(ratingFor))

以上是解决比较两个枚举类型的问题的方法。

0
0 Comments

问题原因:如何比较两个枚举类型(enum)。

解决方法:枚举常量的equals方法和==运算符的效果相同,可以互换使用。

在Java中,枚举类型是一种特殊的类,它表示一个有限的、固定的值集合。当我们需要比较两个枚举类型的值是否相等时,可以使用equals方法或==运算符。

equals方法是Object类的方法,在枚举类型中被重写。它用于比较两个对象是否具有相同的值。对于枚举类型来说,equals方法和==运算符的效果是相同的,都可以用来比较枚举常量是否相等。

下面是一个例子,展示了如何比较两个枚举常量是否相等:

enum Season {
    SPRING, SUMMER, AUTUMN, WINTER;
}
public class Main {
    public static void main(String[] args) {
        Season season1 = Season.SPRING;
        Season season2 = Season.SUMMER;
        // 使用equals方法比较两个枚举常量是否相等
        boolean isEqual = season1.equals(season2);
        System.out.println(isEqual);  // 输出:false
        // 使用==运算符比较两个枚举常量是否相等
        boolean isSame = (season1 == season2);
        System.out.println(isSame);  // 输出:false
    }
}

在上面的例子中,我们定义了一个Season枚举类型,包含四个枚举常量。然后我们创建了两个Season类型的变量season1和season2,并将它们分别赋值为SPRING和SUMMER。通过equals方法和==运算符的比较,我们可以得到它们的相等性。

需要注意的是,枚举类型的equals方法和==运算符的效果相同,但在其他类中,equals方法的默认实现是比较对象的引用,而不是值。因此,在比较其他类型的对象时,应该使用equals方法来确保比较的是对象的值而不是引用。

总结起来,比较两个枚举类型的值是否相等,可以使用equals方法或==运算符,它们的效果是相同的。在使用equals方法时,需要注意其他类型的对象可能会有不同的实现方式。

0
0 Comments

在上述代码中,我们可以看到一个错误的比较操作符被使用。代码中的比较操作符是"==",然而,它被用于比较两个枚举类型的值,这是不正确的。

枚举是一种特殊的数据类型,用于定义一组常量。每个枚举值都有一个唯一的整数表示。在比较枚举值时,我们应该使用它们的整数表示而不是直接比较它们的名称。

因此,上述代码中的错误比较操作符导致了问题的出现。为了解决这个问题,我们应该使用枚举值的整数表示进行比较。

修正后的代码如下所示:

if (ratingFor == illegal.getValue())

在修正后的代码中,我们使用了枚举值的整数表示进行比较。通过调用`getValue()`方法,我们可以获取枚举值的整数表示。然后,我们可以使用比较操作符"=="来比较两个整数值。

通过修正代码中的比较操作符,我们可以避免枚举类型比较错误,并确保代码的正确性。

总结起来,正确比较两个枚举类型的值的方法是使用它们的整数表示进行比较,而不是直接比较它们的名称。如果我们错误地使用了比较操作符"=="来比较枚举类型的值,我们应该使用枚举值的整数表示进行比较,以确保代码的正确性。

0