1
我創建了一個摘要file parser
cfc。這聽起來像是從文件系統中讀取文件時所需的一些常見任務。ColdFusion XML文檔返回類型
該組件的一個子組件用於解析XML文件並返回一個coldfusion XML文檔。現在,這一切都很完美,但是,我無法弄清的一件事是如何顯式定義xml文檔的返回類型,這是我非常想強制執行的。
負責返回的XML文檔的方法如下:
public coldfusion.xml.XmlNodeList function parse(string filePath = "", boolean isCaseSensitive = false, string validator = "")
{
super.parse(arguments.filePath);
var data = getData();
if (len(arguments.validator)) {
setDocument(xmlParse(data, arguments.isCaseSensitive, arguments.validator));
} else {
setDocument(xmlParse(data, arguments.isCaseSensitive));
}
return getDocument();
}
你可以看到,返回類型爲coldfusion.xml.XmlNodeList
。我已經設法通過使用以下客戶端代碼來弄清楚。
<cfscript>
factory = new Library.parser.Factory();
parser = factory.getParser("XmlFileParser");
xmlDoc = parser.parse("/var/www/development/Framework/test/testfile.xml");
/** XMLDoc is now a coldfusion document object **/
writeDump(xmlDoc);
writeDump(getMetadata(xmlDoc).getName()); /** outputs coldfusion.xml.XmlNodeList **/
</cfscript>
這是不正確的,我得到的錯誤是:
The value returned from the parse function is not of type coldfusion.xml.XmlNodeList.
我失去了很簡單的東西?我應該關心這麼多嗎?
編輯:
新增的getDocument方法(你可以看到有 「任何」 的返回類型)
public any function getDocument()
{
return variables.document;
}
+1哈哈,多麼尷尬,當然我看起來一定是錯過了它。在我的辯護中,我確信這是某種組件類型。 – AlexP