国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java創(chuàng)建對象的方式你知道幾種???

這篇具有很好參考價值的文章主要介紹了Java創(chuàng)建對象的方式你知道幾種???。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

準備工作:首先創(chuàng)建一個學生類。

import java.io.Serializable;

public class Student implements Serializable {
    String name;
    int age;
    int score;

    public Student() {
    }

    public Student(String name, int age, int score) {
        this.name = name;
        this.age = age;
        this.score = score;
    }

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }
}

1.通過new關鍵字來創(chuàng)建對象。

 Student s1=new Student("張三",15,78);

2.通過反射的構造方法來創(chuàng)建對象。

//反射
        Constructor<Student> declaredConstructor = Student.class.getDeclaredConstructor(String.class, int.class, int.class);
        Student stu = declaredConstructor.newInstance("熊愛明", 15, 89);
        System.out.println(stu);

?不懂反射的同學可以看這里:你還不會反射吧,快來吧?。?!_明天更新的博客-CSDN博客

?3.通過克隆來創(chuàng)建對象。

import com.sun.xml.internal.messaging.saaj.util.ByteInputStream;
import sun.misc.Unsafe;

import java.io.*;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;
import java.lang.reflect.Constructor;

public class Test {
    public static void main(String[] args) throws Throwable {
        //克隆
        Student student=new Student("張三",15,78);
        Object clone = student.clone();
        System.out.println(clone);
        
    }
}

4.通過反序列化來創(chuàng)建對象。(Student類實現(xiàn)Serializable接口)

import com.sun.xml.internal.messaging.saaj.util.ByteInputStream;
import sun.misc.Unsafe;

import java.io.*;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;
import java.lang.reflect.Constructor;

public class Test {
    public static void main(String[] args) throws Throwable {
        //反序列化
        byte[] bytes = serialize(student);
        Student s2 = (Student)deserialize(bytes);
        System.out.println(s2);

    }
    private static byte[] serialize(Student student) throws IOException{
        ByteArrayOutputStream baos=new ByteArrayOutputStream();
        ObjectOutputStream oos = new ObjectOutputStream(baos);
        oos.writeObject(student);
        byte[] bytes = baos.toByteArray();
        return bytes;
    }
    private static Object deserialize(byte[] bytes) throws IOException,ClassNotFoundException{
        ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(bytes));
        return ois.readObject();
    }
}

5.通過MethodHandle? API來創(chuàng)建對象。文章來源地址http://www.zghlxwxcb.cn/news/detail-680312.html

//MethodHandle API
        MethodHandle constructor = MethodHandles.lookup().findConstructor(Student.class, MethodType.methodType(void.class, String.class, int.class, int.class));
        Student s = (Student)constructor.invoke("李四", 45, 89);
        System.out.println(s);

到了這里,關于Java創(chuàng)建對象的方式你知道幾種???的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • java中對象和Map互相轉換的幾種方式

    在Java中,將對象和Map相互轉換是常見的操作,可以通過不同的方式實現(xiàn)這種轉換。以下是幾種常見的方法以及示例說明: 1. 使用Hutool工具類 Hutool是一個優(yōu)秀的Java工具包,提供了豐富的工具方法,其中就包括對象和Map之間轉換的工具方法。 示例: Hutool的 BeanUtil 提供了 bean

    2024年02月03日
    瀏覽(21)
  • Java 創(chuàng)建對象的7種方式

    這是最常見的創(chuàng)建對象的方式。使用 new ,調用對象的構造方法來創(chuàng)建一個新的實例。 Java中的每個類都有一個名為 Class 的類對象,可以使用它的 newInstance() 方法創(chuàng)建類的實例。這種方式要求類必須有一個無參的構造方法。 Java的反射機制允許在運行時動態(tài)地獲取類的信

    2024年02月06日
    瀏覽(12)
  • Java創(chuàng)建對象的4種方式

    new 反射 Clone 反序列化 最常見的創(chuàng)建對象的方式,通過這種方式我們還可以調用任意的構造器(無參的和有參的) Class.newInstance 這是我們運用反射創(chuàng)建對象時最常用的方法。Class類的newInstance使用的是類的public的無參構造器。因此也就是說使用此方法創(chuàng)建對象的前提是必須有

    2024年02月09日
    瀏覽(20)
  • 常用的將Java的String字符串轉具體對象的幾種方式

    常用的將Java的String字符串轉具體對象的幾種方式

    Java對象以User.class為例 ,注意:代碼中使用到了lombok的@Data注解 以上就是常用的幾種String轉具體的java對象操作

    2024年04月11日
    瀏覽(40)
  • java 對象list使用stream根據(jù)某一個屬性轉換成map的幾種方式

    可以使用Java 8中的Stream API將List轉換為Map,并根據(jù)某個屬性作為鍵或值。以下是一些示例代碼: 在這個示例中,將Person對象列表轉換為Map,其中鍵為Person對象的name屬性,值為Person對象本身。 在這個示例中,將Person對象列表轉換為Map,其中鍵為Person對象本身,值為Person對象的

    2024年02月13日
    瀏覽(97)
  • 前端中對象的幾種創(chuàng)建方式

    前端中對象的幾種創(chuàng)建方式

    創(chuàng)建對象的幾種方式: 1.字面量方式 2.工廠模式 3.構造函數(shù)模式 4.原型模式 缺點:創(chuàng)建多個對象時,需要重復代碼,不能復用。 作用:批量創(chuàng)建同類型對象,降低代碼冗余度。 缺點:創(chuàng)建出的新對象,不知道是什么Person或者Animal類型,需看函數(shù)內部代碼。 構造函數(shù) 是一種特

    2023年04月08日
    瀏覽(17)
  • Java開發(fā)或調用WebService的幾種方式

    Java開發(fā)或調用WebService的幾種方式

    1.服務端開發(fā)與發(fā)布 編寫接口 編寫接口的實現(xiàn)類 發(fā)布服務 訪問已發(fā)布的WebService服務 打開瀏覽器輸入http://127.0.0.1:8888/JaxWSTest?wsdl訪問,如下面內容 截圖內容1 瀏覽器中輸入wsdl文檔中的 http://127.0.0.1:8888/JaxWSTest?xsd=1可查看綁定的參數(shù)等信息看如下圖: 截圖內容2 jdk自帶生成W

    2024年01月17日
    瀏覽(27)
  • Java面試題Class類的理解?創(chuàng)建類的對象的方式?

    Java面試題Class類的理解?創(chuàng)建類的對象的方式?

    1.類的加載過程: 程序經過 javac.exe 命令以后,會生成一個或多個字節(jié)碼文件(.class結尾)。 接著我們使用 java.exe 命令對某個字節(jié)碼文件進行解釋運行。相當于將某個字節(jié)碼文件 加載到內存中。此過程就稱為類的加載 。加載到內存中的類,我們就稱為運行時類,此運行時類,

    2024年02月10日
    瀏覽(19)
  • JAVA開發(fā)(通過Apollo注入配置信息的幾種方式)

    JAVA開發(fā)(通過Apollo注入配置信息的幾種方式)

    在springCloud中有一個重要的組件就是配置中心,config:server,用于配置springboot中需要注入的各種配置項。但是現(xiàn)在發(fā)現(xiàn)越來越多的企業(yè)使用Apollo進行集成。博主在開發(fā)中也是使用Apollo進行配置。本文總結Apollo的的使用,集成到springboot,和注入方式等。 ? Apollo是攜程框架部門研

    2024年02月09日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包