如果我有一個匿名內部類對象是這樣的(其中,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咬了。你的服務器是什麼?確保你使用的是最新版本。 – 2013-05-10 14:27:54
參考:http://stackoverflow.com/questions/1299837/cannot-refer-to-a-non-final-variable-inside-an-inner-class-defined-in-a-differen – 2013-05-14 02:04:50