文字列として渡された関数をインスタンス化する必要があり、定義後に関数を実行できるようにする「関数」オブジェクトのラッパーを作成しました。
ラッパーは JavaAssist ライブラリを使用し、オブジェクトとメソッドをラッパー オブジェクトのフィールドとして使用し、メソッドを使用してラッパー クラスの外部で関数を使用できるようにします。
私の問題は、関数本体の構文に関するものです。たくさんあります
java.lang.VerifyError: (class: MyClass, method: myMethod signature: (*my signature, unimportant *) Expecting to find *a primitive type* on stack
たとえば、その場でのキャストに関連する
Double c = (double) intVariable;
私が解決したもの(本当に良い解決策ではありませんが、機能しています)これらのキャストを回避し、定義された型の変数を常にインスタンス化します
Double c = new Double( (String) intVariable.toString() );
今、私は別の問題を抱えており、それは私を夢中にさせています:これは文字列の内容です
Double t2 = new Double ( (String) parametri.get("pigreco").toString() );
Double t3 = new Double ( (String) (new Integer(2)).toString() );";
Double mysum = t2;
mysum+= t3;
return my sum;
t2.getClass() と t3.getClass() は java.lang.Double を返しますが、mysum は t2 と t3 の連結であり、算術合計ではありません...どうして可能なのでしょうか?