я создал объект SAXParser и XML читать в Java внутри объекта POJO, который обрабатывает различные типы XML-файлы в зависимости от того, что абонент уточнимпомочь избавиться от дублированного кода?
это POJO получает значение XML, который представляет собой список имен контактов и время идентификаторов другой XML-файл/значение представляет собой одинарные контакты фактических детали т.е. номера телефона, адрес и т.д. и т.п.
Моего вопрос о том, как я могу удалить скопированный код из приведенной ниже коды:
public static List<ContactName> extractContactList(String xml, int type) {
mXMLdata = new StringReader(xml);
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser sp = factory.newSAXParser();
XMLReader xr = sp.getXMLReader();
if(type == XML_MODE_PARSE_CONTACT_DESC){
mContactDescHandler = new ContactDescXmlHandler();
xr.setContentHandler(mContactDescHandler);
xr.parse(new InputSource(mXMLdata));
return mContactDescHandler.getContactDesc();
return null;
} else if(type == XML_MODE_PARSE_CONTACT_LIST){
mContactListHandler = new ContactListXmlHandler();
xr.setContentHandler(mContactListHandler);
xr.parse(new InputSource(mXMLdata));
return mContactListHandler.getContactNameList();
}
как вы можете видеть Я использую два разных POJO'S, которые расширяются d "DefaultHandler
, и они оба используют мой XMLReader
, чтобы сделать setContentHandler
и разобрать.
это их путь в java, чтобы вернуть общий объект List<>()
, поскольку два обработчика возвращают мне другой список pojo или мне лучше оставить его, если он или полностью разделяет два в разных методах?
xr.setContentHandler(mContactDescHandler);
и xr.parse(new InputSource(mXMLdata));
Я могу определенно написать его один раз, но я думаю, что основной проблемой является тип возврата.
веселит заранее
У вас есть два оператора return в вашей первой ветви оператора if. –
Мне кажется, что реальный вопрос заключается в том, как вернуть что-то из списка * или * Список (или что-то еще). Это правильный вывод? –
2010-10-11 17:32:00