Java 反射抽象类问题『求高手解答』
现在这么一个需求,有一个第三方Jar包,有一个类A,A有一个方法x(B b),方法的参数b是一个抽象类形,需要自己去实现里面的方法c(),使用反射的好处就是如果Jar包不存在,也不会影响编译,当然运行时错误可以捕获排除。
比如不通过反射,那么应该这么写:
那么现在的问题是通过反射,很容易得到A的对象
这样就能创建A的对象了,但是以相同的方式不能创建B的对象,因为B是抽象类,
不能使用B类型的newInstance方法创建,并且不知道在哪里实现它的方法c()。
那么现在的问题是,我们获取到B的类型时,怎么实例化它的对象,
准确的说是去实现一个或者继承B类,并且定义它的方法。最终将其传给A的x方法作为参数运行!
问题就是这样,不知道我是否描述清楚,请有经验的朋友帮忙解答,或者这是不能实现的!
也许Java提供的“机制”不能完成这样的需求?固有此一问!
比如不通过反射,那么应该这么写:
A a = new A();
a.x(new B(){
c(){
// 根据需要实现c方法
}
d(E e){
}
});
那么现在的问题是通过反射,很容易得到A的对象
Class<?> cA = Class.forName("A的全名");
Object oA = cA.newInstance();
这样就能创建A的对象了,但是以相同的方式不能创建B的对象,因为B是抽象类,
不能使用B类型的newInstance方法创建,并且不知道在哪里实现它的方法c()。
那么现在的问题是,我们获取到B的类型时,怎么实例化它的对象,
准确的说是去实现一个或者继承B类,并且定义它的方法。最终将其传给A的x方法作为参数运行!
问题就是这样,不知道我是否描述清楚,请有经验的朋友帮忙解答,或者这是不能实现的!
也许Java提供的“机制”不能完成这样的需求?固有此一问!
...全文
相关推荐
Java实例化一个抽象类对象的方法教程
大家都知道抽象类无法实例化,就无法创建对象。所以下面这篇文章主要给大家介绍了关于Java实例化一个抽象类对象的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
抽象类、反射、动态绑定、及接口的使用
抽象类、反射、动态绑定、及接口的使用 rar压缩文件
Java 反射创建get set方法及反射方法的调用
Java 反射创建get set方法及反射方法的调用
java反射 java反射 java反射java反射
java反射 java反射java反射java反射java反射java反射java反射java反射java反射java反射java反射java反射java反射java反射
Java程序员面试问题及详细解答
Java程序员面试常见问题及详细解答


Java SE
