【发布时间】:2019-01-04 09:43:38
【问题描述】:
我有一个包含大约 20 个类的外部模型,我必须使用它,但不能修改(在下面的代码示例中:FirstExtClass、SecondExtClass)。在这些类中的每一个中都有一个枚举,它是它的内部类(代码如下:TheSameEnum)。我将它翻译成我的模型,我希望这些枚举中的每一个都只是一种类型:EnumFromMyModel。我已经使用许多函数解决了这个问题,将外部枚举转换为我的枚举(下面有 2 个示例,但要完全转换它们,我需要 20 种复制粘贴方法,如下所示。
我正在尝试创建一个通用函数,它将以 TheSameEnum 作为参数的类并返回 EnumFromMyModel(类似于下面代码中的第三个函数)。
private static EnumFromMyModel
convertFirstEnumFromExternalModelToEnumFromMyModel(FirstExtClass.TheSameEnum input) {
return input.equals(FirstExtClass.TheSameEnum.FIRST_VALUE) ?
EnumFromMyModel.FIRST_VALUE :
EnumFromMyModel.SECOND_VALUE;
}
private static EnumFromMyModel convertSecondEnumFromExternalModelToEnumFromMyModel(SecondExtClass.TheSameEnum input) {
return input.equals(SecondExtClass.TheSameEnum.FIRST_VALUE) ?
EnumFromMyModel.FIRST_VALUE :
EnumFromMyModel.SECOND_VALUE;
}
private static <T> EnumFromMyModel genericConvert(T input) {
return input.equals(/*????*/) ?
ScopeUsageLimit.FIRST_VALUE :
ScopeUsageLimit.SECOND_VALUE;
}
我的问题是:这有可能创建这样的通用函数吗?
【问题讨论】: