如果我有一个匿名内部类对象是这样的(其中,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