2
的所有实例,如果我实现了一些在MethodInterceptor如下:不CGLIB修改类
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());
是对象的每个实例现在提高? IE:如果我做这样的事情:
class foo { foo(){} }
foo myfoo = new foo();
int hash = myfoo.hashCode();
System.io.println(hash); //Prints 0
它确实打印0?
它看上去仍然不清晰。 create()似乎返回一个可用于实例化增强对象的工厂......意味着您必须自己明确实例化它们 – Raindog