Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
public class SAXHandler extends DefaultHandler {
private static final String CLASSNAME = "class";
private Object object;
private String element;
private Logger logger;
public SAXHandler() {
logger = LogManager.getLogger(this.getClass().getName());
}
//...
@Override
public void characters(char[] chars, int start, int length) {
if (element != null) {
String s = new String(chars, start, length);
try {
ReflectionHelper.setFieldValue(object, element, s);
} catch (...) {
//...
}
}
}
//...
}
public class ReflectionHelper {
private static ReflectionHelper helper;
public static ReflectionHelper instance() {
if (helper == null)
helper = new ReflectionHelper();
return helper;
}
public static Object createInstance(String className) throws
ClassNotFoundException,
IllegalAccessException,
InstantiationException {
return Class.forName(className).newInstance();
}
public static <T> void setFieldValue(Object object, String fieldName, T value)
throws NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
Field field = object.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
if (field.getType().equals(value.getClass())) {
field.set(object, value);
} else {
throw new IllegalArgumentException();
}
field.setAccessible(false);
}
}
Java. Простой SAX парсер