嗨,我有以下几个方面:
public abstract class A(){
public void doSomething();
public void makeMe(){
try {
A.class.getDeclaredConstructor().newInstance();
} catch (InstantiationException | IllegalAccessException | IllegalArgumntException
| InvocationTargetException | NoSuchMethodException | SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public class B() extends A{
@Override
public void doSomething(){
}
}
public class C() extends A{
@Override
public void doSomething(){
}
}
该如何使makeMe获得以下行为:
B.makeMe()
C.makeMe()
原始类比这要复杂得多,这只是一个例子。但是如何获得它,有可能吗?
这可能与反思有关吗?
谢谢
答案 0 :(得分:2)
您正在尝试实例化抽象类A
。要实例化子类(B.makeMe()
创建一个B
对象,而C.makeMe()
创建一个C
对象),请将A.class
替换为this.getClass()
。 />