我创建了处理不同类型的XML文件根据呼叫者指定的内容的帮助摆脱重复的代码?
这个POJO获取表示联系人姓名和身份证的,而列表的XML值的POJO对象中读取Java中的SAXParser的对象和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));
我绝对可以写一次,但我认为主要问题是返回类型。
欢呼提前
您在if语句的第一个分支中有两个return语句。 – 2010-10-11 14:59:15
它在我看来,真正的问题是如何返回列表 *或*列表(或其他)。这是一个正确的结论吗? –
2010-10-11 17:32:00