У меня есть 2 Java-класса (Child1.java and Child2.java)
, которые расширяются от общего класса (Parent.java)
. У меня есть другой общий класс (Common.java)
, который можно вызывать из обоих дочерних классов. Я получаю имя класса вызывающего абонента из Thread.currentThread().getStackTrace()
и создаю экземпляр класса через Java Reflection
. Затем я создаю новый экземпляр объекта из этого класса. Поэтому тип возвращаемого значения метода Object
Хотя в данный момент я возвращаю объект, мне нужно написать commonMethod()
таким образом, чтобы вызываемый класс новый экземпляр возвращал динамически.
public class Child1 extends Parent {
public void method1()
{
new Common().commonMethod();
}
}
public class Child2 extends Parent {
public void method2()
{
new Common().commonMethod();
}
}
public Object commonMethod() throws ClassNotFoundException, InstantiationException, IllegalAccessException
{
String className = Thread.currentThread().getStackTrace()[2].getClassName();
Class clazz = Class.forName(className);
return clazz.newInstance();
}
Любая помощь будет оценена