课程章节介绍
同学们,今天我们来聊聊Apex里怎么操作sObject的字段,其实跟咱们熟悉的Java很像。
首先你可以用简单的点符号来读取或者修改字段。比如有一个联系人对象 con,你想拿到它的名字,就直接 con.FirstName;要修改它,就 con.LastName = '张' ,简单明了。
但是要注意,系统自动生成的字段,你是改不了的。比如创建日期 CreatedDate 或者记录ID,这些由Salesforce自己维护,你只能读,不能写。
接下来,如果你用的是通用的 SObject 类型,而不是具体像 Account、Contact 那种明确的对象,使用上就有点限制。通过点符号,你只能直接拿到 Id 字段。因为通用类型不知道你到底有哪些字段,所以如果要访问 Id 以外的字段,就得用 put() 和 get() 方法。像这样用 get 读取:con.get('FirstName') ,用 put 设置:con.put('LastName', '李') 。这个是针对动态或通用对象的用法。
还有一个很重要的概念:sObject 的字段可以处于“未设置”状态。它跟空值或空白字符串是不一样的。未设置的意思是从来没有赋过值,而空字符串是明确赋予了一个空值,null 也是明确给了空。虽然很多时候它们表现得相似,但在某些场景下,比如判断字段是否在查询中返回,或者进行更新操作时,行为会不同。所以你心里要有这个区别。
最后,平台还有个非常贴心的保护机制。当你的 Apex 代码被解析和验证时,系统会真实地去检查你引用的 sObject 和字段名称是不是存在。如果对象名或字段名写错了,部署或保存的时候就会报错。而且,如果你试图修改代码后去删除一个已经在代码里用到的自定义字段,平台会阻止你,防止你的代码崩溃。这就帮我们提前规避了很多低级错误。
好,这就是对sObject字段访问的要点,咱们在实际写代码的时候可以马上用起来。
关键词
Apex
Salesforce
Developer Guide