我創建了處理不同類型的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