同学们,我们来看一下关于 sObject 列表的几个要点,我会尽量说得简单好懂。
首先,Apex 里的列表(List)不光能存普通的数字、字符串这些简单类型,还能存各种各样的 sObject,比如客户(Account)、联系人(Contact)这些业务对象。这种 sObject 列表最大的好处就是能做,批量处理,。
打个比方,你用 SOQL 从数据库里查出一堆记录,直接把它们都放进一个列表里。接下来,如果你想把这些记录都插入到数据库里,或者批量更新,只需要对这一个列表执行一次 DML 操作(比如 `insert`)就行了,不用一条一条去循环处理,效率高很多。
当你执行插入操作的时候,Apex 会自动为列表里每一条新记录生成唯一的 ID,也就是 Salesforce 里的记录号,你不需要自己操心。
但是有一点需要特别注意:,列表里不能有重复的同一个对象实例,。举个例子,你创建了一个 Account 对象,然后把它的引用在列表里添加了两次,即使这个对象还没有 ID,还没存进数据库,这种列表在插入或更新时也会报错,系统不允许这么做。简单说,就是列表里的每个 sObject 都必须是独立的对象实例,不能把一个对象重复添加。
顺便说一下,声明 sObject 列表有两种写法,效果完全一样。一种是用标准的 List 写法,比如:
```apex
List
myAccounts = new List();
```
另一种是用数组式的方括号写法,像这样:
```apex
Account[] myAccounts = new Account[]{};
```
两种你都可以用,看习惯就好。
总结一下:
- 列表可以存 sObject,适合做批量 DML 操作;
- 插入后系统自动分配 ID;
- 列表里不能有重复的同一个对象实例;
- 声明时既可以用 `List<...>`,也可以用数组符号 `[]`。
好,这就是关于 sObject 列表的基础内容,你理解了吗?