В Java это называется Отражение .
Предполагая, что класс имеет этот конструктор, в противном случае вы получите исключение NoSuchMethod, как я полагаю.
clazz.asSubclass(asSubclassOfClass)
.getConstructor(String.class,XYZ.class)
.newInstance("howdy",XyzObj);
Поскольку выЯ новичок в Java, позвольте мне дать вам более простое, чтобы вы могли понять, что происходит под капотом, когда вы делаете это.
Предположим, у вас есть следующий класс:
public class ParentClazz{
String someVar;
public ParentClazz(){
someVar="test";
}
public ParentClazz(String someVar){
System.out.println("I have been invoked");
this.someVar=someVar;
}
}
Тогдау вас есть следующий основной метод:
public static void main(String[] args) throws ParseException, IllegalArgumentException, SecurityException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException {
ParentClazz.class.asSubclass(ParentClazz.class).getConstructor(String.class).newInstance("howdy");
}
Если вы запустите это, вы увидите сообщение о выводе на консоль - я был вызван.Это означает, что с помощью отражения вы вызвали конструктор ParentClazz.
Вы можете сделать то же самое, если позволяет сценарий, используя стандартный процесс создания объекта:
ParentClazz clazz = new ParentClazz("howdy");
Надеюсь, это поможет вам понять это.