![](/img/trans.png)
[英]I need to implementation click listener class on item in recycle view when using adapter and array list
[英]When do I need to recycle?
我有一个applicationScope受管bean,它将关于一系列应用程序的大量信息加载到Map中。 然后,以下方法是Bean的一部分:
public Database getAppDB() {
Database appDB = null;
try{
Session s = ExtLibUtil.getCurrentSession();
serverName = s.createName(s.getCurrentDatabase().getServer()).getCommon();
appDB = s.getDbDirectory(serverName).openDatabaseByReplicaID(this.getAppRepID());
return appDB;
}catch (NotesException e){
System.out.println(e.toString());
return appDB;
}
}
现在,此方法声明两个对象(Session和appDB)。 不知道它们是否需要在返回之前进行回收,如果是这样,因为appDB是返回值,所以该怎么做。 本届会议可以轻松回收。 现在很清楚,如果我从一些SSJS调用此方法:
var thisDB:NotesDatabase = appProps[ssApplication].appDB;
我需要在SSJS中回收thisDB。
另外,如果我在SSJS中执行以下操作:
var cNames = appProps[ssApplication].appDB.getView("vwFTSearch").getColumnNames();
我假设没有什么可回收的?
详细的答案是在Knut粘贴的其他两个问题中。
对您的特定问题的简短回答是,您不应在getAppDB()
方法中回收这些对象。
投放页面后,会话将自动回收。 该方法的调用者(对于您的情况为SSJS)应回收数据库对象。
一般规则是:您销毁(回收)您创建的内容。 你离开所给的。 会话和数据库是系统提供的对象(给定的),因此即使您使用其他函数来获取它们,也可以将它们保留下来。
其余的我发现了一个合理的实践:在创建对象的函数中,它被回收了,而不是其他地方。 您必须采取一些“实用”的“创造”方法。 例如,当您遇到以下情况:
var custDB = getCustDB(curUser);
那么您就不会将getCustDB视为创建者,而是那行代码并具有recycle(); 在该代码所在的函数中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.