JavaプログラムでJavascriptを使用してスクリプトを作成しようとしています。JavascriptでJavaコレクションを反復処理する方法が見つかりませんでした。コレクションに対してiterator()メソッドを呼び出すと、要素の代わりにメソッド名を取得します。
サンプルコードは次のとおりです。
function getValue(row, components) {
var apartment = components.get(0);
var rooms = apartment.getRooms();
for (var room in rooms.iterator()) {
println(room);
}
return rooms.toString();
}
Apartment.getRooms()は部屋のコレクションを返します。この関数によって返される値を調べると、その内容が正しいことがわかりますが、出力される値はメソッド名です。
次のように、JavaプログラムからJavascriptを呼び出します。
getInvocable().invokeFunction("getValue", row, components);