Я ищу простое решение.Java XML динамический парсер
У меня есть XML-файл:
<properties>
<property>
<class>java.lang.String</class>
<value>String value...</value>
</property>
<property>
<class>java.lang.Boolean</class>
<value>true</value>
</property>
<!-- ... others java lang wrapper class -->
</properties>
Я хотел бы сделать динамический анализатор.
Я знаю, что могу читать xml с org.w3c.dom. * И org.w3c.dom.Node.getTextContent() Я могу получить значение тега.
Class<?> clazz = Class.forName(classTextContent);
// How to convert value to specific clazz?
// if/else (clazz)? Does not look a nice answer.
Любое предложение?
[Изменено] По отражению:
переменный "clazz" является java.lang.Class, верно? Как преобразовать значение textContent (в String) в любой тип обертки?
Object objectValue = null;
Class<?> clazz = Class.forName(nodeClass.getTextContent());
String value = nodeValue.getTextContent();
if (clazz.equals(Boolean.class) { objectValue = Boolean.valueOf(value) }
valueOf может быть общий метод, который я мог бы назвать с помощью отражения ... Integer, Float, Boolean, Long, Double поддержку valueOf.
Другой способ?
Отражение Ваш ответ: https://docs.oracle.com/javase/tutorial/reflect/ – Emd4600