最も簡単な方法はnewキーワードを使用して、構造関数package aa;
public class CC {
public CC() {
System.out.println("cc is created");
}
public static void main(String[] args) {
CC cc = new CC();
}
}
の試験結果を呼び出します:`cc is created ClassクラスのnewInstanceメソッドを使用して、コンストラクタ package aa;
public class CC {
public CC() {
System.out.println("Class.forName()");
System.out.println("cc is created");
}
public static void main(String[] args) {
try {
CC C = (CC)Class.forName("aa.CC").newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
を呼び出すテスト結果Class.forName()
cc is created
ReflectパッケージのConstructorクラスのnewInstanceメソッドを使用して、コンストラクタpackage aa;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
public class CC {
public CC() {
System.out.println("constructor.newInstance()");
System.out.println("cc is created");
}
public static void main(String[] args) {
try {
Constructor constructor = CC.class.getConstructor();
CC c = constructor.newInstance();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
のテスト結果constructor.newInstance()
cc is created
を呼び出す.
cloneメソッドを使用してオブジェクトを作成します.Cloneableインタフェースはフラグインタフェースです.Clonableインタフェースにはメソッドpackage aa;
public class CC implements Cloneable {
public CC() {
System.out.println("sss");
System.out.println("cc is created");
}
@Override
protected Object clone() throws CloneNotSupportedException {
CC cc =null;
cc = (CC) super.clone();
return cc;
}
@SuppressWarnings("unused")
public static void main(String[] args) {
CC cc = new CC();
try {
CC cc2 = (CC) cc.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
}
}
の試験結果がありません.sss
cc is created
の上のコンストラクション関数はnewの操作によって生成されます.cloneメソッドがコンストラクション関数を呼び出していないことを示します.