java實例化對象的幾種方式


這里一共整理了四種方法

①用類的new ()創建

②用clone方法創建, 需要類實現 Cloneable 接口

③通過反射機制創建

④將一個對象實例化后,進行序列化,再反序列化

下面是實現代碼

 

1)用類的new ()創建

User user = new User();

2)用clone方法創建, 需要類實現 Cloneable 接口
User user2 = (User) user1.clone();
3)用 Class.forName方法獲取類,在調用類的newinstance()方法

Class<?> cls =null;
User u = null;
try {
cls = Class.forName("com.dao.User");
u = (User)cls.newInstance();
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}

4)將一個對象實例化后,進行序列化,再反序列化,也可以獲得一個對象(遠程通信的場景下使用)

try{
ObjectOutputStream out = new ObjectOutputStream (new FileOutputStream("D:/objectUser.txt"));
//序列化對象
out.writeObject(user1); //"Kong zi", "13800010001", "Greatwalk"
out.close();
//反序列化對象
ObjectInputStream in = new ObjectInputStream(new FileInputStream("D:/objectUser.txt"));
User user4 = (User) in.readObject();
System.out.println("反序列化user:" + user4);
in.close();
}
catch(ClassNotFoundException e ){
e.printStackTrace();
}
catch(FileNotFoundException e ){
e.printStackTrace();
}
catch(IOException e ){
e.printStackTrace();
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM