gpt4 book ai didi

java - 比较 Java 中的枚举

转载 作者:行者123 更新时间:2023-12-01 07:05:15 25 4
gpt4 key购买 nike

我有一个具有枚举类型的 DTO。我想测试 DTO 字段,但不知道该怎么做。

Class MyDto {
public enum ExamResult { PASS, FAIL };
private ExamResult result;
...
}

我正在尝试测试其他类中的结果字段

if(myDto.result.equals("PASS")) {
//doSomething
} else {
//doOtherthing
}

但是 .equals() 总是返回 false,即使它具有正确的值。所以不确定如何测试它。

最佳答案

比较相等性时,Enums 值的行为就好像它们是整数一样。因此,您应该使用 == 运算符。虽然 equals(ExamResult.PASS) 也可以正常工作,如评论中所述(但这并不经常使用)。

if(myDto.result == ExamResult.PASS) {
//Do something
} else {
//Do other thing
}

如果您只能访问 Enum 值的 String 表示形式,则可以使用此类代码:(但我不推荐)

if(myDto.result.getName().equals("PASS")) {
//Do something
} else {
//Do other thing
}

更多说明: Enum 值在编译时被赋予唯一的整数值。在 Java 语言中,保证枚举值的名称和编译时间编号是唯一的。您可以使用 ordinal() 方法获取 Enum 唯一编号。可以使用 values() 方法以数组表示形式获取枚举的值。可以使用 name() 方法以字符串表示形式获取 Enum 值的名称。

关于java - 比较 Java 中的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26854770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com