JavaScript
問題 一連のシェルコマンドを受け取り、あるコマンドの出力を次のコマンドの入力として接続し、最後の出力を返す JavaScript の pipe 関数を書け 例えば pipe('find .', 'grep -v class', 'sort') と呼び出す 解答 -scriptingオプション付きでjjsを起動して…
問題 以下の JavaScript のコード var arr = new (Java.extend(java.util.ArrayList)) { add : function(x) { print('Adding ' + x); return Java.super(arr).add(x) } } により、Java のArrayListクラスのaddメソッドをログ出力するように拡張した しかし、…
問題 文字列から部分文字列を抽出することで、リテラルでない JavaScript の文字列を生成し、それに対してgetClassメソッドを呼び出せ 次にjava.lang.String.class.castメソッドへ渡せ このとき何が起こるか? 解答 ■ リテラルでない JavaScript の文字列の型…
問題 jjs を実行して、次の呼び出しを行え var big = new java.math.BigInteger('1234567890987654321') big の値を表示するとどうなるか? big の下3桁big.mod(java.math.BigInteger('1000'))は何か? 解答 jjs> var big = new java.math.BigInteger('1234567…
問題 jjs を実行し、Stream ライブラリを使用して次の問題に対する解法をインタラクティブに求めよ あるファイルに含まれている長い単語(12文字より長い)を、重複なしで全てソートして表示せよ 解答 まず、Streamの要素をコンソールに表示して元のStreamを…
問題 例えばZonedDateTimeクラスなど、試してみたい Java API を選んで オブジェクトの生成 メソッドの呼び出し 戻り値の表示 など、jjs を使った実験を行え 解答 ■ オブジェクトの生成 ZonedDateTimeクラスにコンストラクタはないので、ファクトリメソッド…
Java 7 で、動的型付け言語を効率的に実行するために InvokeDynamic というバイトコードが新たに導入された 例えば、JavaScript で、次のような関数があった場合 function sum(a, b) { return a + b; } a + bの + 演算子は、文字列の連結なのだろうか? それ…