Code 1:通过反射构建无参数对象
Class.forName(类的全限定名).newInstance(); // 该创建方式在JDK1.9之后被起用
替代方式:
Class.forName(类的全限定名).getConstructor().newInstance();
注意事项:当要构建的对象存在有参构造方法且想通过反射构建无参数对象时,必须在该对象的类中显示的写出无参数的构造方法。
Code 2:通过反射构建有参数对象
Class.forName(类的全限定名).getConstructor(参数类型1.class, 参数类型2.class, ......).newInstance(参数1, 参数2, ......);
备注:此处的参数类型可以是任意类型(包括基本数据类型,eg:int.class、double.class)。
2.反射方法
Code 1:反射无参方法
Object objecct = Class.forName(类的全限定名).getConstructor().newInstance();
Method method = object.getClass().getMethod(方法名);
method.invoke(object);
或
具体类对象 entityObj = (具体类对象)Class.forName(类的全限定名).getConstructor().newInstance();
Method method = entityObj.class.getMethod(方法名);
method.invoke(entityObj);
Code 2:反射有参方法
Object objecct = Class.forName(类的全限定名).getConstructor().newInstance();
Method method = object.getClass().getMethod(方法名, 参数类型1, 参数类型2, ......);
method.invoke(object, 参数1, 参数2, ......);
或
具体类对象 entityObj = (具体类对象)Class.forName(类的全限定名).getConstructor().newInstance();
Method method = entityObj.class.getMethod(方法名, 参数类型1, 参数类型2, ......);
method.invoke(object, 参数1, 参数2, ......);