У меня есть внешняя модель с примерно 20 классами, которую я должен использовать, но не могу изменить (в коде ниже примеров: FirstExtClass
, SecondExtClass
).В каждом из этих классов есть enum, который является его внутренним классом (код ниже: 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;
}
Мой вопрос: возможно ли создать такую универсальную функцию?