Подтвердить что ты не робот

Исправление создания событий для newInstance()

После работы отлично, когда className "java.awt.Rectangle" и "java.lang.String" и т.д. Но он не работает для "java.lang.Integer", "java.lang.Double", давая java.lang.InstantiationException для classDefinition.newInstance().

Class classs = Class.forName(className);
Object object = classs.newInstance();

Это проблема с классами Wrapper или другими?

Отредактировано: способ сделать это - кредиты должны отправиться в Jigar.

Class       integerDefinition   = Class.forName("java.lang.Integer");
Constructor intArgsConstructor  = integerDefinition.getConstructor(new Class[] {int.class});
Object[]    intArgs             = new Object[] { new Integer(12) };
Object      object              = intArgsConstructor.newInstance(intArgs);
4b9b3361

Ответ 1

Поскольку Integer не имеет конструктора no-arg (default), class.newInstance() будет вызывать конструктор по умолчанию внутри

Ответ 2

Class.newInstance() может вызывать только конструктор с нулевым аргументом и Integer doesn ' t имеет конструктор аргументов ZERO.