Общая информация о том, как проверить неуникальные идентификаторы в коде JavaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Общая информация о том, как проверить неуникальные идентификаторы в коде Java

Сообщение Anonymous »

В очень огромном проекте существует множество классов ExceptionClasses, в которых сведения об исключениях реализованы в виде перечисления.

Код: Выделить всё

NAME_OF_EXCEPTION_DETAIL(ID, PRIORITY)
например:

Код: Выделить всё

NO_LICENSE_FOUND(100, 0)
UNSUPPORTED_LICENSE(101, 1)
WRONG_LICENSE_FOR_VERSION(101, 0)
В некоторых случаях идентификатор сведений об исключении один и тот же, чего никогда не должно было произойти. Вполне возможно, что дубликатов больше, но этот проект слишком велик, чтобы проверить это вручную...
Есть ли разумный способ проверить код на наличие дубликатов, например. UnitTesting — никогда раньше не использовал.
Спасибо за помощь!
Изменить (Ответ Бенса — хороший способ решить эту проблему при использовании только одного перечисления):
Чтобы быть более ясным в моей конкретной задаче, это обстоятельства.
Существует множество классов, написанных для обработки ExceptionDetails, например

Код: Выделить всё

TopicOneExceptionDetails.java
TopicTwoExceptionDetails.java  (and so on)
Каждый из этих классов определяет перечисление для этой темы следующим образом:

Код: Выделить всё

public enum TopicOneExceptionDetails implements ApplicationException.ExceptionDetails { .... }
за которым следует объявление ошибок, связанных с ошибками TopicOne, например

Код: Выделить всё

SETTING_TIMEZONE_FAILED(55, ...)
Setting_DATETIME_FAILED(56, ...)
в этом перечислении для TopicOne каждый идентификатор ошибки должен быть уникальным. Но, например, идентификатор 55 (здесь он используется для SETTING_TIMEZONE_FAILED) без проблем может использоваться в объявлении ошибок, связанных с TopicTwo.
Редактировать 2 (Использовать отражения? )
Я нашел довольно информативный ответ о Java Reflections, написанный Мэттом Шеппардом. Я думаю, это могло бы решить мою проблему. Мне нужно сделать перерыв, но я отчитаюсь. Мои текущие мысли:

Код: Выделить всё

Reflections reflections = new Reflections("project.de")
for(Class

Подробнее здесь: [url]https://stackoverflow.com/questions/40018828/general-information-about-how-to-check-for-non-unique-ids-in-java-code[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»