能
用程序自己实现
比如:
public abstract class YourClassName
{
public abstract Object someMethod(...);
}
在你要有的地方
YourClassName ycn = (YourClassName)java.lang.reflect.Proxy\
.newProxyInstance(Thread.currentThread().getContextClassLoader(),\
new Class[]{YourClassName.class},new java.lang.reflect.\
InvocationHandler(){
public Object invoke(Object proxy,Method m,Object params[])
throws Exception{return null;}
});
这样就得到了YourClassName的一个实例
只是这个实例没有任何用处,他所有的方法都直接返回
如果要使不是abstract的方法和原来的一样,
那么修改invoke函数,判断m是不是抽象的
不是就调用proxy中的方法(m.invoke(proxy,params))
如果是就返回null
用程序自己实现
比如:
public abstract class YourClassName
{
public abstract Object someMethod(...);
}
在你要有的地方
YourClassName ycn = (YourClassName)java.lang.reflect.Proxy\
.newProxyInstance(Thread.currentThread().getContextClassLoader(),\
new Class[]{YourClassName.class},new java.lang.reflect.\
InvocationHandler(){
public Object invoke(Object proxy,Method m,Object params[])
throws Exception{return null;}
});
这样就得到了YourClassName的一个实例
只是这个实例没有任何用处,他所有的方法都直接返回
如果要使不是abstract的方法和原来的一样,
那么修改invoke函数,判断m是不是抽象的
不是就调用proxy中的方法(m.invoke(proxy,params))
如果是就返回null
本文介绍如何使用Java反射API创建代理类实例。通过具体代码示例,展示了如何为抽象类生成代理对象,并重写方法调用行为。

被折叠的 条评论
为什么被折叠?



