对代理类的疑惑。。。疑惑用红色标出
通过代理来创建实例对象,和通常直接创建对象究竟有什么却别?
Constructor constructor = clazzProxy.getConstructor(InvocationHandler.class);
class MyInvocationHandler implements InvocationHandler
{
@Override
public Object invoke(Object proxy, Method method, Object[] args)throws Throwable
{
return null;
}
}
Collection proxy1 = (Collection) constructor.newInstance(new MyInvocationHandler());
// 并且这里只能调用无返回值的方法,而不能调用有返回值的方法。这不是要比通常对象有了局限性吗?那么用代理对象有什么好处呢?
proxy1.clear();
// proxy1.size(); |