我遇到了Method Replacer,想知道我们是否可以将Method Replacer用于Final方法。
以下是代码:
sh script
以下是Method replacer的代码:
public class FriendlyImpl implements Friendly {
public void sayHello(String name) {
System.out.println("Hello "+ name);
}
}
这是bean.xml
import java.lang.reflect.Method;
import org.springframework.beans.factory.support.MethodReplacer;
public class FriendlyReplacer implements MethodReplacer {
public Object reimplement(Object o, Method m, Object[] a)
throws Throwable {
System.out.println("Hola "+a[0]);
return null;
}
}
答案 0 :(得分:2)
最终方法不能覆盖注入/ JSR-330。
答案 1 :(得分:1)
是的,您写的是Spring使用反射API查找私有方法,但是在方法替换器概念中Spring创建了目标类的子类,即我们要替换的方法所在的类,并使用我们提供的替换方法覆盖了该方法。在那个春天产生了子类。 因此,如果方法是最终方法,则无法覆盖破坏Java规则的方法。