global with sharing class test1 {
global Map<SObjectField, SObject> ConvertMap(List<SObject> listToConvert){
List<SObject> listToConvert = new List<SObject>;
Map<SObjectField, SObject> mapTest = new Map<SObjectField, SObject>;
mapTest.putAll(listToConvert);
return mapTest;
}
我已经编写了这段代码,但它不尊重请求,因为我无法将 SObjectField 作为方法参数,因为 Map 无法识别该变量。 有人对如何做有建议吗? 预先感谢您。
你真的需要
SobjectField
作为地图键吗?特殊班级?如果您同意字符串作为键,那么有一个内置的,getPopulatedFieldsAsMap()
如果你绝对需要SobjectField(我什至不知道它是否可序列化并且可以传递给集成、LWC等)...你必须循环并将结果与类似的东西结合起来
Schema.describeSObjects(new List<String>{'Account'})[0].fields.getMap()
要创建 sObject 字段的映射,您首先需要创建该对象的所有字段的映射 例如你想要一张像
这样的地图Map<SObjectField, String> registrationAttributes= new Map<SObjectField, String> ();
为此
// Get a map of all of the fields on the 'User' object
Map<String, Schema.SObjectField> fMap = Schema.getGlobalDescribe().get('User').getDescribe().Fields.getMap();
// Get details from the field
Schema.SObjectField FirstName = fMap.get('FirstName');
registrationAttributes.put(FirstName, 'Abhinav');
for (SObjectField field : registrationAttributes.keySet()) {
String value = registrationAttributes.get(field);
system.debug('field ==> '+ field);
system.debug('value ==> '+ value);
}