は(ここではFooはインターフェースです):ELに匿名内部クラス豆のパラメータ(複数可)を持つメソッドを呼び出す
Foo foo = new Foo(){
@Override
public String hello(Object dummyArg){
return "hello, world.";
}
};
と私はからFoo.hello
を呼び出そう以下のようなJSPこの:
${foo.hello('blah')}
それはスロー:パラメータがない場合
javax.el.MethodNotFoundException: Unable to find method [hello] with [1] parameters
をしかし:
Bar bar = new bar(){
@Override
public String hello(){
return "hello, world.";
}
};
...
${bar.hello()}
それが正常に動作します。どうして?
これは7121303の複製ではありません。私は特に匿名の内部クラスについて質問しています。通常のクラスのインスタンスでは、任意の数のパラメータで動作します。
私はTomcatの古いバージョンでこの種のbuに噛まれたことを覚えていると思います。あなたのサーバーは何ですか?最新バージョンを使用していることを確認してください。 –
参照:http://stackoverflow.com/questions/1299837/cannot-refer-to-a-non-final-variable-inside-an-inner-class-defined-in-a-differen –