Apex 中的自定義迭代器
阿新 • • 發佈:2018-11-29
迭代器
迭代器(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();
}
}