Nếu tôi có một đối tượng lớp bên trong vô danh như thế này (nơi Foo là một giao diện):gọi các phương pháp với tham số (s) trên đậu lớp bên trong vô danh trong EL
Foo foo = new Foo(){
@Override
public String hello(Object dummyArg){
return "hello, world.";
}
};
và tôi cố gắng gọi Foo.hello
từ jsp như thế này:
${foo.hello('blah')}
nó ném:
javax.el.MethodNotFoundException: Unable to find method [hello] with [1] parameters
nhưng nếu không có các thông số:
Bar bar = new bar(){
@Override
public String hello(){
return "hello, world.";
}
};
...
${bar.hello()}
nó hoạt động tốt. Tại sao?
Đây không phải là bản sao của 7121303. Tôi hỏi cụ thể về các lớp bên trong vô danh. Với một thể hiện của một lớp thông thường, nó hoạt động với bất kỳ số tham số nào.
Tôi nghĩ rằng tôi nhớ đã bị cắn bởi loại bu này trên phiên bản cũ của Tomcat. Máy chủ của bạn là gì? Đảm bảo bạn đang sử dụng phiên bản mới nhất. Tham chiếu –
: http://stackoverflow.com/questions/1299837/cannot-refer-to-a-non-final-variable-inside-an-inner-class-defined-in-a-differen –