我有一個遞歸函數,它使用Notes對象。請告訴我是否應該爲這些對象調用回收方法,或者我可以將它留給垃圾回收器?我是否必須在循環函數中使用循環Notes對象?
function getAllUsersInDepartmentAndSub (nd: NotesDocument, arrData: Array) {
var strSubPrefix = strTaskLibName + "getAllUsersInDepartmentAndSub/";
try {
var ndcResp: NotesDocumentCollection;
var ndResp: NotesDocument;
var ndNext: NotesDocument;
var strTemp: string;
if (nd) {
ndcResp = nd.getResponses();
if (ndcResp) {
if (ndcResp.getCount() > 0) {
ndResp = ndcResp.getFirstDocument();
while (ndResp) {
strTemp = @LowerCase(ndResp.getItemValueString("form"));
if (strTemp == "department") {
getAllUsersInDepartmentAndSub (ndResp, arrData);
} else if (strTemp == "person") {
strTemp = ndResp.getItemValueString("fullname");
if (@Member(strTemp, arrData) <= 0) {
arrData.push(strTemp);
}
}
ndNext = ndcResp.getNextDocument(ndResp);
ndResp.recycle();
ndResp = ndNext;
}
}
ndcResp.recycle();
}
}
} catch(e) {
writeInfo(strSubPrefix, e, true, true);
}
}
請至少增加一段snippet代碼。 –
recycle()不執行Java垃圾回收,它釋放C對象。 Java垃圾收集器不釋放C對象,它釋放Java內存。他們一起工作 – stwissel