Java中传引用例如export.tpl
1)_exportFields = nvl(_exportFields,iif(gt(biz.listableFields.size(),0),biz.listableFields,dsMeta.visibleListableFieldNames));
2)_exportFields = $A(_exportFields).copy().listValue();
3)_exportFields.retainAll(exportableFields);
如果没有第二句话,变量_exportFields和biz.listableFields引用的是同一个对象。第三句话讲改变biz.listableFields这个集合,因此如果配置tpl缓存那么列表页面会被改变。
retainAll(Collection col)是保留两个集合的交集,是对原来的集合对象的增减
1)_exportFields = nvl(_exportFields,iif(gt(biz.listableFields.size(),0),biz.listableFields,dsMeta.visibleListableFieldNames));
2)_exportFields = $A(_exportFields).copy().listValue();
3)_exportFields.retainAll(exportableFields);
如果没有第二句话,变量_exportFields和biz.listableFields引用的是同一个对象。第三句话讲改变biz.listableFields这个集合,因此如果配置tpl缓存那么列表页面会被改变。
retainAll(Collection col)是保留两个集合的交集,是对原来的集合对象的增减
本文探讨了Java中传引用的工作机制,特别是在处理集合时如何避免意外修改原始数据的问题。通过具体的代码示例,解释了如何使用副本及集合操作来确保数据的独立性。
1254

被折叠的 条评论
为什么被折叠?



