我们可以在Salesforce(apex)中动态转换SObject吗?

时间:2014-09-10 09:02:50

标签: salesforce apex-code apex force.com

是否可以动态地投射SObject?

示例:

我知道我们可以这样做:

(Account) Sobject

但是我想这样做,因为sObject的返回类型会根据某些参数而改变。

(Dynamically Passing the Name) SObject

任何方式都会有所帮助......在此先感谢:)

2 个答案:

答案 0 :(得分:0)

不幸的是,没有。我最近在编写TestFactory类时遇到了这个问题。我能做的最好的就是将响应转换回调用TestFactory方法的代码中的预期类型。

答案 1 :(得分:0)

是的,您可以做到。例如-

Class ABC {

   public static List<Object> method1(String sObjectType){
      List<Object> records = new List<Object>();
      if(sObjectType == 'Account'){
          records = [SELECT Id, Name FROM Account];
      } else if(sObjectType == 'Account'){
          records = [SELECT Id, Name FROM Contact];
      }
      return records;
   }

}

您可以检查列表的sObject类型-

if(records instanceof List<Account>){
  // your code here
} else if(records instanceof List<Contact>){
  // your code here
}