Нет никакого отношения между двумя перечислениями, за исключением того, что они оба являются перечислениями.
В сообщении об ошибке очень четко упоминается, что оба перечисления являются разными сущностями, и, следовательно, вы не можете преобразовать одно в другое .Оба имеют различное пространство имен, и оба будут скомпилированы как отдельные перечисления, оба будут существовать при выполнении приложения как отдельные объекты, оба будут загружены как отдельные.
У вас есть следующие варианты
Извлеките enum в отдельный внешний публичный файл и используйте его, когда вам это нужно.Это сработает, если вы сможете изменить код.
Определить класс двумя методами
public Test1.UserType getTest1Usertype( Test2.UserType)
public Test2.UserType getTest2Usertype( Test1.UserType)
В обоих этих методах вы можетереализовать логику для возврата соответствующих перечислений.В вашем случае он выглядит как name
как один и тот же для экземпляров обоих перечислений, поэтому он становится запятым фактором, на основе которого вы можете сделать отображение.
Обратите внимание, что опция лучше, чем в опции 2 , в случае изменения имен перечислений или добавления новых экземпляров, вам необходимо обновить эти методы отображения.Вы можете использовать .name()
, чтобы получить имя типа String
(которое будет общим фактором совпадения между двумя перечислениями) и чтобы получить экземпляр перечисления, вы можете использовать .valueOf(String name)