2012-09-19

Javaの可変長引数メソッドを呼び出す

Rhino1.6R6から、java.lang.System.printf()やjava.lang.String.format()を 自然な書き方で利用できるようになった。
ちなみに、jrunscriptの組み込み関数printfは、古いRhinoでも動くように 可変長引数ではなくオブジェクト配列を使用して実装されている。 (内部でargumentsの第2引数以降をjava.lang.Objectの配列にコピーしてから、 java.lang.System.printf()を呼び出す)

1. 実行するスクリプト(varargs.js):
java.lang.System.out.printf("%.1f, %.1f\n", [1.2, 2.4]);
java.lang.System.out.printf("%.1f, %.1f\n", 3.6, 4.8); // 可変長引数の代わりに配列も使える

2-1. Rhino1.7で実行する:
>java -classpath .;js.jar org.mozilla.javascript.tools.shell.Main -w -debug varargs.js
1.2, 2.4
3.6, 4.8

2-2. jrunscript(Java1.7)で実行すると、結果はRhino1.7と同じ:
>jrunscript varargs.js
1.2, 2.4
3.6, 4.8

0 件のコメント:

コメントを投稿