Apex:map.Put() byVal 而不是 byRef?
Apex: map.Put() byVal instead of byRef?
我想知道是否有办法通过值而不是引用将元素 .put() 到地图中。
我有一张地图> 和一个填充它的循环,如下所示:
Map<string,List<string>> result = new Map<string,List<string>>();
List<string> temp = new list<string>();
for(CustomObj__c i:customList){
for(CustomObj__c j:customList2){
if(j.id == i.id){
temp.add(j.Contact__r.Owner.Id);
temp.add(j.Contact__r.Id);
result.put(i.Deal__r.id, temp);
temp.clear();
break;
}
}
}
问题出在我清除临时列表时。然后我得到一个有键但空列表值的映射。是否可以在地图中按值(创建副本).put() 列表,使其不受调用 temp.clear() 的影响?
谢谢大家,
扎克
您可以修改您的代码,例如 this.In 此代码我正在为每个地图插入创建一个新实例。
地图>结果=新地图>();
列出温度;
for(CustomObj__c i:customList){
for(CustomObj__c j:customList2){
if(j.id == i.id){
temp = new list<string>();
temp.add(j.Contact__r.Owner.Id);
temp.add(j.Contact__r.Id);
result.put(i.Deal__r.id, temp);
break;
}
}
}
我认为你应该这样做
if(j.id == i.id){
List<string> temp = new list<string>();
temp.add(j.Contact__r.Owner.Id);
temp.add(j.Contact__r.Id);
result.put(i.Deal__r.id, temp);
我想知道是否有办法通过值而不是引用将元素 .put() 到地图中。
我有一张地图> 和一个填充它的循环,如下所示:
Map<string,List<string>> result = new Map<string,List<string>>();
List<string> temp = new list<string>();
for(CustomObj__c i:customList){
for(CustomObj__c j:customList2){
if(j.id == i.id){
temp.add(j.Contact__r.Owner.Id);
temp.add(j.Contact__r.Id);
result.put(i.Deal__r.id, temp);
temp.clear();
break;
}
}
}
问题出在我清除临时列表时。然后我得到一个有键但空列表值的映射。是否可以在地图中按值(创建副本).put() 列表,使其不受调用 temp.clear() 的影响?
谢谢大家,
扎克
您可以修改您的代码,例如 this.In 此代码我正在为每个地图插入创建一个新实例。
地图>结果=新地图>(); 列出温度;
for(CustomObj__c i:customList){
for(CustomObj__c j:customList2){
if(j.id == i.id){
temp = new list<string>();
temp.add(j.Contact__r.Owner.Id);
temp.add(j.Contact__r.Id);
result.put(i.Deal__r.id, temp);
break;
}
}
}
我认为你应该这样做
if(j.id == i.id){
List<string> temp = new list<string>();
temp.add(j.Contact__r.Owner.Id);
temp.add(j.Contact__r.Id);
result.put(i.Deal__r.id, temp);