两个枚举的java比较
给定测试代码:两个枚举的java比较,java,enums,comparison,Java,Enums,Comparison,给定测试代码: @Test public void testEnumAreEqual() { for (var someEnum : SomeEnum.values()) { Assertions.assertTrue(EnumUtils.isValidEnum(OtherEnum.class, someEnum.name())); } for (var otherEnum : OtherEnum.values()) { Assertions.
@Test
public void testEnumAreEqual() {
for (var someEnum : SomeEnum.values()) {
Assertions.assertTrue(EnumUtils.isValidEnum(OtherEnum.class, someEnum.name()));
}
for (var otherEnum : OtherEnum.values()) {
Assertions.assertTrue(EnumUtils.isValidEnum(SomeEnum.class, otherEnum.name()));
}
}
我想检查两个给定的枚举是否包含相同的值
是否有更优雅的方法来实现这一点?构建一组名称:
Set<String> someEnumNames =
Arrays.stream(SomeEnum.values())
.map(Enum::name)
.collect(toSet());
您的意思是要检查
enum E1{A,B;}
和enum E2{A,B;}
是否相等,因为它们都具有值A和B?@Thomas:correct,yes@SMA不应该工作,不同的时刻你为什么复制你的?人们试图在那个问题上帮助你,但你选择忽略那个帮助,而是发布一个新问题。
assertEquals(someEnumNames, otherEnumNames);