可不可以实例化一个抽象类?- -
程序员文章站
2022-07-10 12:17:10
...
能
用程序自己实现
比如:
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
上一篇: shell 脚本编程之函数
下一篇: shell脚木编程 函数定义 脚本中断