java-您可以回收Domino对象的向量吗?
作者:互联网
我已经制作了对象的向量,这些对象是Domino ViewEntries(就此而言,它们可以是Documents或任何Domino对象).这既不是ViewEntryCollection也不是DocumentCollection.列表对象是一个Vector(甚至可以是ArrayList).我知道这个technote与回收特定对象有关,但是处理列表中的对象尚不清楚
我是否需要分别回收Vector中的所有元素?还是我可以简单地删除它们?如果我想回收元素向量,我该怎么做?向量是否有可能,还是应该使用其他类型的列表构造来完成?
这个例子使我相信它实际上不会回收它们…讨论.
Vector entries = new Vector();
..... add each ViewEntry to the collection....
for (int i=0;i<entries.size();i++) {
((ViewEntry) entries.elementAt(i)).recycle();
}
解决方法:
recycle()方法将删除所选Java对象的后端对象.注意,它还会删除可能同时引用该完全相同的JNI引用的任何其他Java对象的后端对象.
它还将回收通过该类创建的所有对象.例如,如果您回收一个NotesCollection,它应该回收所有通过NotesCollection引用的文档.或更明显地,回收会话对象将回收所有内容.
循环中循环的原因是出于存储目的.如果将文档存储在矢量中,请小心,因为每个完整的物理文档都保存在内存中.最好存储UNID并根据需要提取文档.或者,如果引用视图,则拉ViewEntry而不拉文档.因为它将使用更少的内存.
Bobs Balaban的博客文章对此进行了详细介绍.
http://www.bobzblog.com/tuxedoguy.nsf/dx/geek-o-terica-5-taking-out-the-garbage-java
标签:lotus-domino,recycle,java 来源: https://codeday.me/bug/20191101/1982364.html