麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

java創建對象的幾種常用方法

2019-11-14 22:36:28
字體:
來源:轉載
供稿:網友
java創建對象的幾種常用方法

java幾種常見的創建對象的方法:

1、使用new關鍵字創建對象

2、利用java的反射機制,通過java.lang.Class或者java.lang.reflect.Constructor創建對象

3、實現Cloneable接口,然后重寫Object.clone()方法創建對象

4、實現序列化serialiable接口,通過反序列化,ObjectInputStream的readObject()方法創建對象

5、String str="abc" 直接由jvm創建 或者使用 字符串操作符"+" String str1 = "a"+"bc"由jvm創建

創建對象類TestBean.java

package test.createObj;import java.io.Serializable;public class TestBean implements Cloneable,Serializable{    /**     *      */    PRivate static final long serialVersionUID = -6896355094290356656L;    private String id;    private String name;        public TestBean(String id, String name) {        this.id = id;        this.name = name;    }    public void setName(String name) {        this.name = name;    }    public String getName() {        return name;    }    public void setId(String id) {        this.id = id;    }    public String getId() {        return id;    }    @Override    protected Object clone() throws CloneNotSupportedException {        return super.clone();    }        @Override    public String toString() {        return super.toString()+"  "+id+"  "+name;    }}

創建測試類CreateObjTest.java

package test.createObj;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.lang.reflect.Constructor;public class CreateObjTest {    /**     * @param args     */    @SuppressWarnings("rawtypes")    public static void main(String[] args) {        //一、new關鍵詞新建一個對象        TestBean testbean1 = new TestBean("1","張三哈哈");                //二、反射機制        TestBean testbean2 = null;        try {            Class<?> clazz = Class.forName("test.createObj.TestBean");            //當類中含有參數的構造函數 而沒有無參構造函數時 會報java.lang.InstantiationException異常            //則類里需要添加無參構造函數//            testbean2 = (TestBean) clazz.newInstance();                        //或者用反射獲取類的有參構造函數   通過有參構造函數實例化對象            Class[] paramTypes = {String.class,String.class};            Constructor constor = clazz.getConstructor(paramTypes);            testbean2 = (TestBean) constor.newInstance("2","李四");        } catch (Exception e) {            e.printStackTrace();        }                //三、克隆   但類必須要實現Cloneable接口     并且要在類里重寫clone方法        //jdl1.6中文api是這樣說的:        //如果在沒有實現 Cloneable 接口的實例上調用 Object 的 clone 方法,則會導致拋出 CloneNotSupportedException 異常。         //按照慣例,實現此接口的類應該使用公共方法重寫 Object.clone(它是受保護的)。        //請參閱 Object.clone(),以獲得有關重寫此方法的詳細信息。         //注意,此接口不 包含 clone 方法。因此,因為某個對象實現了此接口就克隆它是不可能的。即使 clone 方法是反射性調用的,也無法保證它將獲得成功。         TestBean testbean3 = null;        try {            testbean3 = (TestBean) testbean1.clone();        } catch (CloneNotSupportedException e) {            e.printStackTrace();        }                //四、反序列化  但類要實現序列化接口        ObjectOutputStream objOutStream = null;        ObjectInputStream objInStream = null;        TestBean testbean4 = null;        try {            File file = new File("C://testbean.txt");            if(!file.exists()){                file.createNewFile();            }//            objOutStream = new ObjectOutputStream(new FileOutputStream(file));//            objOutStream.writeObject(testbean1);            objInStream = new ObjectInputStream(new FileInputStream(file));            testbean4 = (TestBean) objInStream.readObject();        } catch (Exception e) {            e.printStackTrace();        }finally{            if(objOutStream!=null){                try {                    objOutStream.close();                } catch (IOException e) {                    e.printStackTrace();                }            }            if(objInStream!=null){                try {                    objInStream.close();                } catch (IOException e) {                    e.printStackTrace();                }            }        }                System.out.println("testbean1:"+testbean1);        System.out.println("testbean2:"+testbean2);        System.out.println("testbean3:"+testbean3);        System.out.println("testbean4:"+testbean4);    }}

運行結果:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 午夜丰满少妇高清毛片1000部 | 国产精品视频一区二区三区四区五区 | 一本一本久久a久久精品综合小说 | 国产一区二区欧美精品 | 性 毛片 | fc2国产成人免费视频 | 日韩视频在线不卡 | 久久免费精品视频 | 一区二区三区黄色 | 亚洲精品欧美在线 | 国产精品视频一区二区三区综合 | 99精品国产视频 | 思思久而久而蕉人 | 亚洲第一成人久久网站 | 一级免费 | 免费a级片在线观看 | 久久国产精品二国产精品中国洋人 | 国产精品成人免费一区久久羞羞 | 操碰97| 成人午夜在线免费观看 | 欧美日韩免费一区二区三区 | 久久精品在这里 | 久久99精品久久久久久小说 | 精品国产欧美一区二区 | 久久久婷婷一区二区三区不卡 | 久久久aa | 未成年人在线观看 | 成人在线视频免费 | 久久精品无码一区二区三区 | 免费毛片视频 | 男人的天堂毛片 | 亚洲国产高清视频 | 欧美成人性生活片 | 免费欧美一级视频 | 国产91片| 国产精品久久久久久久av三级 | 黄色毛片a级 | 国产高潮失禁喷水爽到抽搐视频 | 久久国产在线观看 | 青草久久av | 国产精品久久久久久久久久尿 |