0

例えば:

次のように定義されたメソッドがあります。

class MyController extends Controller {

   public void index() {
       String aa = "1111";
       int bb = 122;

       render("index.html", aa, bb);
   }
}

ここで、引数名 aa と bb を取得して、HashMap を作成します。

Map map = new HashMap();
map.set("aa", aa);
map.set("bb", bb);

多くの MVC フレームワークがそうできるのを見てきましたが、どのように実装されていますか? リフレクションまたはバイトコードのハッキングまたはコンパイル時の処理?

PS: メソッドのパラメーター名を取得する方法は (デバッグでコンパイルして) ​​知っていましたが、呼び出し時にメソッドの引数名を知る必要があります。

4

3 に答える 3

0

render()メソッドがその引数の変数名を見つけられるようにしますか?

これは、バイトコード操作なしでは不可能です。

MVC フレームワークは、(JSF やその他の Web フレームワークなどで) 呼び出し式を含む文字列を取得するときに引数名を認識できますが、実際の呼び出しを含むバイトコードを取得するときは認識できません。

于 2012-04-15T09:17:37.557 に答える