Имя класса переменной Java - PullRequest
1 голос
/ 14 октября 2010

Я создаю новый объект, который принимает строку и класс.Допустим, у меня есть класс с именем "Quiz.java".Что работает:

headerItem = new TreeFieldItem(new QuizMenuItem(key, Quiz.class));

Моя строка «значение» возвращается как «Викторина».Как мне сделать эту работу?

 private ArrayList<TreeFieldItem> getListItems() {

    ArrayList<TreeFieldItem> arrayList = new ArrayList<TreeFieldItem>(14);

    TreeFieldItem headerItem    = null;

    Map<String, String> map = getMenuItems(R.xml.xml_quiz_menu);

    for (Entry<String, String> entry : map.entrySet()) {

        String key = entry.getKey();
        String value = entry.getValue();

        **headerItem = new TreeFieldItem(new QuizMenuItem(key, value.class));**
        arrayList.add(headerItem);

    }

    return arrayList;

}

1 Ответ

4 голосов
/ 14 октября 2010

Использование Class.forName(String)

http://mindprod.com/jgloss/classforname.html

headerItem = new TreeFieldItem(new QuizMenuItem(key, Class.forName(value));

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...