勝手に実装?

http://d2.hatena.ne.jp/winebarrel/20060526#p2
interfaseの引数にfunctionを渡すと、勝手に実装してくれるみたい。
定義してあるメソッドがひとつだけだから、実装されたのかなぁ?
メソッドが複数定義してあったらどうなるんだろ?


#!/usr/bin/env rhino
importPackage(Packages.org.ho.yaml);
importPackage(Packages.org.apache.commons.collections);

var list = Yaml.load("--- [AAA, BBB, CC, DD, EEE]");

CollectionUtils.forAllDo(list, function(i) {
print(i);
});

var collected = CollectionUtils.collect(list, function(i) {
return i.substring(0, 1);
});

print(collected);

var selected = CollectionUtils.select(list, function(i) {
return (i.length() > 2);
});

print(selected);