На тот же вопрос уже есть ответы для fields
и methods
, предлагая перебирать существующие элементы и сравнивать строчные буквы имена. Но classes
отличаются тем, что вы не можете [легко ] перебирать классы в пакете.
Мое Java-приложение создает экземпляры объектов в соответствии с заданным вводом от стороннего - не чувствительного к регистру - приложения, и оно терпит неудачу, когда регистр неправильный. Поскольку java не позволяет использовать классы с одинаковыми именами и разными регистрами в одном пакете, я думаю, должен быть простой способ получить объект Class
без точного регистра.
Я хочу избежать нескольких if
/else if
, так как я постоянно добавляю классы в пакет. try
ing все возможности случая также не может быть и речи (поскольку это O (2 ^ n)).
Итак, как мне поступить?
Решение:
Как было предложено в @IReeder answer (спасибо @assylias), я проигнорировал стандартные соглашения Java и назвал все ваши классы строчными буквами. Таким образом, я всегда могу вызвать class.forName с версией ввода в нижнем регистре.