Отражение Java - нечувствительный к регистру Class.forName() в пакете

На тот же вопрос уже есть ответы для fields и methods, предлагая перебирать существующие элементы и сравнивать строчные буквы имена. Но classes отличаются тем, что вы не можете [легко ] перебирать классы в пакете.

Мое Java-приложение создает экземпляры объектов в соответствии с заданным вводом от стороннего - не чувствительного к регистру - приложения, и оно терпит неудачу, когда регистр неправильный. Поскольку java не позволяет использовать классы с одинаковыми именами и разными регистрами в одном пакете, я думаю, должен быть простой способ получить объект Class без точного регистра.

Я хочу избежать нескольких if/else if, так как я постоянно добавляю классы в пакет. trying все возможности случая также не может быть и речи (поскольку это O (2 ^ n)).

Итак, как мне поступить?

Решение:

Как было предложено в @IReeder answer (спасибо @assylias), я проигнорировал стандартные соглашения Java и назвал все ваши классы строчными буквами. Таким образом, я всегда могу вызвать class.forName с версией ввода в нижнем регистре.


person Elist    schedule 27.11.2014    source источник
comment
Вы видели это: stackoverflow. com/questions/19281781/   -  person assylias    schedule 27.11.2014
comment
Теперь я сделал. Именование всех классов в нижнем регистре может быть хорошим решением.   -  person Elist    schedule 27.11.2014