关于Java:如何检查枚举相等

how to check equal for enum

本问题已经有最佳答案,请猛点这里访问。

我有枚举

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class TestResult {

    MY_ENUM {
        @Override
        public String toString() {
            return"Test1";
        }

        @Override
        public boolean isTested() {
            return true;
        }

        public abstract boolean isTested();
    }
    private MY_ENUM myEnum;
    public MY_ENUM getMyEnum() {
        return myEnum ;
    }
}

我有其他班的学生

1
2
3
public class Result {
    private final TestResult testResult ;
}

我想检查testsult.getMyEnum()是否等于TestResult.MY_ENUM.我需要这样做吗:

1
 1 .  testResult.getMyEnum() == TestResult.MY_ENUM.

它是否检查了toString和isted的值?

1
2
3
4
2.   testResult.getMyEnum().toString().equal(TestResult.MY_ENUM.toString())


3.  testResult.getMyEnum().equal(TestResult.MY_ENUM)

它是否检查了toString和isted的值?


两者都正确,.equals()推迟到==。

==将避免NullPointerException