2008-07-20

Mozilla Rhinoを使ってみて、とりあえずハマったこと(と、その対策)

問題1. Javaクラスのコンストラクタがambiguousとかいうエラーが発生する
問題2. Javaクラスのメソッドがambiguousとかいうエラーが発生する
問題3. Javaの文字列とJavaScriptの文字列が混在した時に、JavaScript向けの関数でエラーが発生する

(2012-09-16更新: mozilla.orgに上記3つの対応方法を説明したページがあったのだが、いつのまにか無くなってしまったようだ。http://www.mozilla.org/js/liveconnect/lc3_method_overloading.html)

対策1. new java.io.File["(java.lang.String)"](fileName); のように直接シグネチャを指定する
対策2. java.lang.String["valueOf(java.lang.Object)"](null); のように直接シグネチャを指定する
対策3. String(obj).replace(/regex/, "repstr"); のようにString(変数)でJavaScriptの文字列に変換する

どこまで厳密に対応するかは、作るスクリプトの役割次第。

0 件のコメント:

コメントを投稿