new
使用Java关键字new生成实例。
可以像下面这样生成Something类的实例并将其保存在obj变量中。
1 | Something obj = new Something(); |
这时,类名(此处的Something)会出现在代码中。
clone
使用clone方法,根据现有的实例复制出一个新的实例。
可以像下面这样根据自身来复制出新的实例(不过不会调用构造函数)。
1 | class Something { |
newInstance
使用java.lang.Class类的newInstance方法可以通过Class类的实例生成出Class类所表示的类的实例(会调用无参构造函数)。
假设现在已经有了Something类的实例someobj,通过下面的表达式可以生成另外一个Something类的实例。
1 | someobj.getClass().newInstance() |
实际上,调用newInstance方法可能会导致抛出InstantiationException异常或是IllegalAccessException异常,因此需要将其置于try…catch语句块中或是用throws关键字指定调用newInstance方法的方法可能会抛出的异常。