【问题标题】:Can we Cast SObject dynamically in Salesforce(apex)?我们可以在 Salesforce(apex) 中动态投射 SObject 吗?
【发布时间】:2014-11-03 20:41:53
【问题描述】:

是否可以动态转换 SObject?

例子:

我知道我们可以做到:

(Account) Sobject

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

(Dynamically Passing the Name) SObject

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

【问题讨论】:

标签: salesforce apex-code apex force.com


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    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;
       }
    
    }
    

    可以查看List的sObject类型——

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

    【讨论】:

    • 使用相当新的“switch”语句也可以解决部分问题。
    猜你喜欢
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多