第一种:使用new关键字;
第二种:使用Class类的newInstance方法(反射);
private static void demo(){
Class<?> clazz=Class.forName("com.one.reflection.Entity");
Entity e = clazz.newInstance();
System.out.println(e);
}
第三种:使用Constructor类的newInstance方法;
private static void demo(){
Entity entity = Entity.class.getConstructor(String.class).newInstance("parameter");
System.out.println(entity);
}
第四种:使用Object类的clone方法;
private static void demo(){
Entity entity = new Entity();
Entity clone = entity.clone();
System.out.println(clone);
}
第五种:使用反序列化的方式;
序列化就是把java的东西放到硬盘中
反序列化就是把硬盘的东西放到java中
public static void main(String[] args) throws CloneNotSupportedException {
Entity entity = new Entity();
entity.name="xiaoming";
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("D:/test.class"))) {
oos.writeObject(entity);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// 反序列化
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D:/test.class"))) {
Entity entity1 = (Entity) ois.readObject();
System.out.println("反序列化:" + entity1);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}