课程章节介绍
同学们好,今天我们来快速消化一个很实用的小知识点,它叫,Schema 命名空间,。
在 Apex 里,我们经常会跟“元数据”打交道,比如想动态拿到一个对象的字段列表、或是查看某个字段的类型,这时候就需要用到 Schema 命名空间里提供的各种类和方法。幸运的是,Schema 命名空间是,隐式导入,的——也就是说,你完全不用写 import 语句,可以直接使用 `Schema.SObjectType`、`Schema.DescribeSObjectResult` 这样的系统类。
不过,这里藏着一个容易踩到的坑。如果你的组织里定义了一个 Apex 类,它的名字,恰好跟某个标准对象或自定义对象同名,——比方说,你写了一个叫 `Account` 的 Apex 类。那么当你在代码里直接打出 `Account` 的时候,Apex 运行时会优先理解为你的自定义类,而不是那个标准的 Account sObject,这就产生了命名冲突。
怎么解决呢?办法很简单:,给对象名前面加上 Schema 命名空间,,写成 `Schema.Account`。这种完全限定的写法,会明确告诉 Apex 运行时:“我要用的是那个 sObject,而不是同名的类。” 这样歧义就立刻消除了。
总结一下一句话:只要遇到类和 sObject 重名的情况,记得用 `Schema.对象名` 的方式来区分,这个小习惯能帮你避开很多莫名其妙的 Bug。
这一页就讲到这里,我们继续往下看下一个话题。
关键词
Apex
Salesforce
Developer Guide