ОК, так что это было задано много раз, и я просмотрел различные ответы, но все же как-то не смог это понять.Java для создания экземпляра класса динамически на основе имени строки
Проблема: У меня есть 5 фрагментов (не андроид-парней, пожалуйста, возьмите классы), которые мне нужно динамически создавать на основе того, что нажато в списке. Я получаю строку в обработчике кликов. Я назвал свои фрагменты удобным. Таким образом, в основном один из моих фрагментов называется SearchResults.java, и соответствующий элемент щелчка возвращает «SearchResults». Так что я хочу сделать что-то вроде:
public void onClick(View v) {
Class cls = Class.forname(clickedString) //clickedString = "SearchResults"
//instantiate it as if it were equal to SearchResults sr = new SearchResults().
}
Я просто хочу, чтобы избежать, если/другое или переключить случаи и ищут более разумным способом. Возможно, мне не хватает некоторых основных базовых концепций Java. Пожалуйста помоги.
http://stackoverflow.com/questions/9886266/is -there-a-way-to-instantiate-a-class-by-name-in-java – Asterisk
комментировать здесь через 4 года на случай, если кто-то приземлится. Фрагменты никогда не должны создаваться с помощью конструктора. см. Http://stackoverflow.com/questions/14654766/creating-a-fragment-constructor-vs-newinstance. Для общей загрузки класса по имени отражение является способом. см. комментарий Asterisk выше. –