使用对象名称将 SObject 转换为自定义对象

问题描述 投票:0回答:0

我有一个用多种不同类型调用的类。我想将 SObject 转换为特定的自定义对象(提供了对象名称)。我将使用下面的代码片段作为示例,而不是实际代码。

SObject dynamicObject = [SELECT Id, Term__r.IntegratedFromExternalSystem FROM ParentObjectName LIMIT 1];

现在我想使用 Parentobjectname 来获取类型。

SObjectType sObjType = ((SObject) Type.forName(parentObjectName).newInstance()).getSObjectType();

这有我想要的类型,现在我想把这个 Sobject 转换成它的自定义对象,所以我实际上可以检索那个 integratedFromExternal 字段。否则它说该字段将不存在。

显然,您不能将变量用作类型,所以这不会起作用,但这是描述我想做的事情的最佳方式。无论 ParentObjectName 字段是什么,我都需要输入它。这个类在系统的不同部分动态使用,这里有各种不同的自定义对象。

sObjType myCustomObject = (sObjType) dynamicObject;
Boolean integratedFromExternal = myCustomObject.Term__r.IntegratedFromExternalSystem__c;

有办法做到这一点吗?

casting salesforce apex
© www.soinside.com 2019 - 2024. All rights reserved.