Apex 中的自定义迭代器
Posted chengcheng0148
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apex 中的自定义迭代器相关的知识,希望对你有一定的参考价值。
迭代器
迭代器(iterator)可以遍历一个集合变量中的每个元素。Apex提供了Iterator接口来让开发者实现自定义的迭代器。
Iterator接口
Iterator接口定义了两个函数:
- hasNext():返回Boolean类型,表示被遍历的集合变量中是否还有下一个元素
- next():返回集合变量中要被遍历的下一个元素
实现Iterator接口的类中所有的函数必须是global或public的。
示例代码(摘录自官方文档):
global class CustomIterable
implements Iterator<Account>{
List<Account> accs {get; set;}
Integer i {get; set;}
public CustomIterable(){
accs =
[SELECT Id, Name,
NumberOfEmployees
FROM Account
WHERE Name = ‘false‘];
i = 0;
}
global boolean hasNext(){
if(i >= accs.size()) {
return false;
} else {
return true;
}
}
global Account next(){
// 8 is an arbitrary
// constant in this example
// that represents the
// maximum size of the list.
if(i == 8){return null;}
i++;
return accs[i-1];
}
}
开发者可以使用Iterator类来实现自定义迭代器类,比如下面这段代码,就是使用了上面代码中定义的类(摘录自官方文档):
global class foo implements iterable<Account>{
global Iterator<Account> Iterator(){
return new CustomIterable();
}
}
以上是关于Apex 中的自定义迭代器的主要内容,如果未能解决你的问题,请参考以下文章
在交互式网格 Oracle Apex 中的自定义验证中突出显示列
在 C++ 中为我自己的自定义向量模板类实现迭代器(类似于 STL)[重复]