【发布时间】:2021-05-21 12:39:16
【问题描述】:
我有两个枚举如下
第一
public enum firstEnum {
ALL_PRODUCT,
SPECIFIC_COLLECTION,
SPECIFIC_PRODUCT
}
秒
public enum secondEnum {
PRODUCT,
COLLECTION,
PRODUCT
}
我正在尝试创建一个通用方法来将一种类型转换为另一种类型,如下所示
public record EnumCasting() {
public <E1,E2> E2 CastOneEnumToAnother(E1 enumFirst, E2 enumSecond) {
return // some logic to convert
}
}
不知道如何实现这一点,任何帮助将不胜感激。 firstEnum.ALL_Product should return secondEnum.Product, firstEnum.SPECIFIC_COLLECTION should return secondEnum.COLLECTION
【问题讨论】:
-
e1的逻辑第一个值=e2的第一个值等等应该是什么?
-
返回类型是E2,所以我需要返回第二个值。
-
我的意思是转换应该如何工作? firstEnum.ALL_Product 应该返回 secondEnum.Product,firstEnum.SPECIFIC_COLLECTION 应该返回 secondEnum.COLLECTION ... 为什么你有两个枚举作为参数?
-
@Jens 是的,你是正确的 firstEnum.ALL_Product 应该返回 secondEnum.Product
-
如果我将两种不同的枚举类型传递给您的方法,结果应该是什么?如果第一个是 { SUN, MON, TUE, WED, THU, FRI, SAT } 而另一个是 { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY },那么我很难想象 Java 代码会猜到我可能希望将 SUN 映射到 SUNDAY 等。
标签: java generics java-8 enums