一、通过反射创建新的类实例的两种方式:
Class.newInstance()
Constructor.newInstance()
二、两种创建方式的比较:
Class.newInstance() 只能够调用无参的构造函数,即默认的构造函数;
Constructor.newInstance() 可以根据传入的参数,调用任意构造函数。
Class.newInstance() 要求被调用的构造函数是可见的,即必须是public的;
Constructor.newInstance() 在特定的情况下,可以调用私有的构造函数,需要通过setAccessible(true)实现。
三、代码示例:
package com.evan.reflect;
class Boy
{
public Boy()
{
System.out.println("My name is evan.");
}
//设置构造方法私有
private Boy(int age, String hobby)
{
System.out.println("I'm "+age+"year old.")