如果我实现了一些MethodInterceptor,如下所示:
public class HashCodeAlwaysZeroMethodInterceptor implements MethodInterceptor {
public Object intercept(Object object, Method method, Object[] args,
MethodProxy methodProxy) throws Throwable {
if ("hashCode".equals(method.getName())) {
return 0;
}
return methodProxy.invokeSuper(object, args);
}
}
Object proxy = Enhancer.create(
Object.class,
new HashCodeAlwaysZeroMethodInterceptor());
Object的每个实例现在都已增强了吗? IE:如果我这样做:
class foo { foo(){} }
foo myfoo = new foo();
int hash = myfoo.hashCode();
System.io.println(hash); //Prints 0
它确实会打印0吗?
答案 0 :(得分:0)
来自API DOCS
创建
public static Factory create(java.lang.Class type,
Callback callback)
创建截取对象的Helper方法。为了更好地控制 生成的实例,使用Enhancer的新实例而不是这个 静态方法。
Parameters:
type - class to extend or interface to implement
callback - the callback to use for all methods
从文档中可以看出答案是肯定的