成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

再見(jiàn),單身狗!Java 創(chuàng)建對(duì)象的六種方式,總有一種適合你......

開(kāi)發(fā) 前端
棧長(zhǎng)本文教你創(chuàng)建對(duì)象的 6 種方式,從低端到高端,各種創(chuàng)建方式,總有一個(gè)適合你,沒(méi)有對(duì)象的自己生成一個(gè)吧!

背景

又到一年一度的情人節(jié)了,祝各位程序員有情人終成眷屬!

今天公眾號(hào)本來(lái)有個(gè)廣告推廣的,被臨時(shí)鴿了,唉。。這個(gè)情人節(jié)有點(diǎn)傷,還好對(duì)象沒(méi)鴿。。

情人節(jié)寫(xiě)點(diǎn)什么好呢?!

有座的各位肯定還有不少單身 dog 吧?

沒(méi)關(guān)系,棧長(zhǎng)本文教你創(chuàng)建對(duì)象的 6 種方式,從低端到高端,各種創(chuàng)建方式,總有一個(gè)適合你,沒(méi)有對(duì)象的自己生成一個(gè)吧!

2022,一定脫單,再見(jiàn)單身狗!

創(chuàng)建對(duì)象的 6 種方式

假設(shè)有個(gè)女朋友類(lèi):

@Data
@NoArgsConstructor
@AllArgsConstructor
class GirlFriend {

private String name;

}

注解使用的是 Lombok 框架注解,方便快速開(kāi)發(fā),不熟悉的閱讀這篇文章:

推薦一款代碼神器,代碼量至少省一半!

方法1:new 一個(gè)對(duì)象

沒(méi)對(duì)象就 new 一個(gè)吧,沒(méi)錯(cuò),使用 new 關(guān)鍵字,這也是 Java 創(chuàng)建對(duì)象最簡(jiǎn)單直接的方式了。

示例代碼:

/**
* new一個(gè)對(duì)象
* @author: 棧長(zhǎng)
* @from: 公眾號(hào)Java技術(shù)棧
*/
@Test
public void girlFriend1() {
GirlFriend girlFriend = new GirlFriend("new一個(gè)對(duì)象");
System.out.println(girlFriend);
}

輸出結(jié)果:

GirlFriend(name=new一個(gè)對(duì)象)

方法2:克隆一個(gè)對(duì)象

朋友有女朋友,你沒(méi)有,如果可以,把別人的女朋友克隆一個(gè)吧?

讓女朋友類(lèi)先實(shí)現(xiàn) Cloneable 接口,并且實(shí)現(xiàn)其 clone() 方法:

/**
* 女朋友類(lèi)
* @author: 棧長(zhǎng)
* @from: 公眾號(hào)Java技術(shù)棧
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
class GirlFriend implements Cloneable {

private String name;

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

}

注意:這里演示默認(rèn)使用的是淺拷貝,即只克隆基本類(lèi)型的字段,引用類(lèi)型的需要再重寫(xiě) clone() 方法手動(dòng)賦下引用字段的值。

現(xiàn)在克隆一個(gè)對(duì)象,示例代碼:

@Test
public void girlFriend2() throws CloneNotSupportedException {
GirlFriend girlFriend1 = new GirlFriend("克隆一個(gè)對(duì)象");
GirlFriend girlFriend2 = (GirlFriend) girlFriend1.clone();
System.out.println(girlFriend2);
}

輸出結(jié)果:

GirlFriend(name=克隆一個(gè)對(duì)象)

使用克隆的好處就是可以快速創(chuàng)建一個(gè)和原對(duì)象值一樣的對(duì)象,對(duì)象的字段值一樣,但是兩個(gè)不同的引用。

方法3:類(lèi)派發(fā)一個(gè)對(duì)象

直接使用女朋友類(lèi)派發(fā)一個(gè)吧:

/**
* 類(lèi)派發(fā)一個(gè)對(duì)象
* @author: 棧長(zhǎng)
* @from: 公眾號(hào)Java技術(shù)棧
*/
@Test
public void girlFriend3() throws InstantiationException, IllegalAccessException {
GirlFriend girlFriend = GirlFriend.class.newInstance();
girlFriend.setName("類(lèi)派發(fā)一個(gè)對(duì)象");
System.out.println(girlFriend);
}

輸出結(jié)果:

GirlFriend(name=類(lèi)派發(fā)一個(gè)對(duì)象)

另外,最新最全的 Java 面試題整理好了,微信搜索Java面試庫(kù)小程序在線刷題。

方法4:反射一個(gè)對(duì)象

知道女朋友類(lèi)在哪里(類(lèi)全路徑),但卻沒(méi)有被加載,那就反射一個(gè)對(duì)象吧:

/**
* 反射一個(gè)對(duì)象
* @author: 棧長(zhǎng)
* @from: 公眾號(hào)Java技術(shù)棧
*/
@Test
public void girlFriend4() throws InstantiationException, IllegalAccessException, ClassNotFoundException {
GirlFriend girlFriend = (GirlFriend) Class.forName("cn.javastack.test.jdk.core.GirlFriend").newInstance();
girlFriend.setName("反射一個(gè)對(duì)象");
System.out.println(girlFriend);
}

輸出結(jié)果:

GirlFriend(name=反射一個(gè)對(duì)象)

方法5:構(gòu)造一個(gè)對(duì)象

知道女朋友類(lèi)的構(gòu)造,就可以調(diào)用構(gòu)造器構(gòu)造一個(gè)對(duì)象:

/**
* 構(gòu)造一個(gè)對(duì)象
* @author: 棧長(zhǎng)
* @from: 公眾號(hào)Java技術(shù)棧
*/
@Test
public void girlFriend5() throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
GirlFriend girlFriend = GirlFriend.class.getConstructor().newInstance();
girlFriend.setName("構(gòu)造一個(gè)對(duì)象");
System.out.println(girlFriend);
}

輸出結(jié)果:

GirlFriend(name=構(gòu)造一個(gè)對(duì)象)

這里也可以同時(shí)結(jié)合反射構(gòu)造一個(gè)對(duì)象。

方法6:反序列化一個(gè)對(duì)象

這個(gè)和克隆的作用類(lèi)似,假如以前序列化(保存)了一個(gè)女朋友在磁盤(pán)上,現(xiàn)在就可以反序列化出來(lái)。

Java 序列化基礎(chǔ)就不介紹了,棧長(zhǎng)之前分享不少,我也都整理好了,可以在公眾號(hào)Java技術(shù)棧菜單中閱讀。

首先讓女朋友可序列化,實(shí)現(xiàn) Serializable 接口:

/**
* 女朋友類(lèi)
* @author: 棧長(zhǎng)
* @from: 公眾號(hào)Java技術(shù)棧
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
class GirlFriend implements Cloneable, Serializable {

private static final long serialVersionUID = 1L;

private String name;

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

}

序列化/反序列化對(duì)象示例代碼:

/**
* 反序列化一個(gè)對(duì)象
* @author: 棧長(zhǎng)
* @from: 公眾號(hào)Java技術(shù)棧
*/
@Test
public void girlFriend6() throws IOException, ClassNotFoundException {
GirlFriend girlFriend1 = new GirlFriend("反序列化一個(gè)對(duì)象");

// 序列化一個(gè)女朋友
ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("gf.obj"));
objectOutputStream.writeObject(girlFriend1);
objectOutputStream.close();

// 反序列化出來(lái)
ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream("gf.obj"));
GirlFriend girlFriend2 = (GirlFriend) objectInputStream.readObject();
objectInputStream.close();

System.out.println(girlFriend2);
}

輸出結(jié)果:

GirlFriend(name=反序列化一個(gè)對(duì)象)

總結(jié)

本文完整示例代碼已上傳 Github:

??https://github.com/javastacks/javastack??

責(zé)任編輯:武曉燕 來(lái)源: Java技術(shù)棧
相關(guān)推薦

2022-08-18 09:38:02

Spring跨域

2009-02-26 10:29:00

2020-07-10 10:48:51

編程語(yǔ)言JavaPython

2010-02-01 08:33:46

2015-01-26 15:58:02

MDM應(yīng)用指南

2021-12-31 16:16:04

JavaScript數(shù)組代碼

2020-12-10 09:48:15

鴻蒙Linux開(kāi)發(fā)

2019-11-13 08:52:19

Linux監(jiān)控日志

2017-06-26 10:35:58

前端JavaScript繼承方式

2018-08-03 16:40:06

前端前端框架微服務(wù)

2025-01-21 10:04:40

Java并發(fā)阻塞隊(duì)列

2022-03-28 20:57:31

私有屬性class屬性和方法

2023-10-30 11:53:37

繼承JS父類(lèi)

2009-02-11 09:46:00

ASON網(wǎng)絡(luò)演進(jìn)

2025-02-27 00:00:30

SpringJava方式

2019-05-16 13:00:18

異步編程JavaScript回調(diào)函數(shù)

2021-12-15 23:10:34

JS Debugger 前端開(kāi)發(fā)

2022-03-23 12:55:50

農(nóng)業(yè)物聯(lián)網(wǎng)

2020-07-31 11:12:39

安全威脅網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)安全

2022-01-14 10:34:50

黑客隱藏蹤跡網(wǎng)絡(luò)安全
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美三区| 成人国产免费观看 | 亚洲精品一区二区网址 | 久久大陆| 特级做a爰片毛片免费看108 | 久久精品91久久久久久再现 | 日韩成人精品视频 | 欧美成人精品一区二区男人看 | 91麻豆精品国产91久久久久久 | 欧美a区| 精精国产xxxx视频在线播放 | 日韩综合在线 | 国产精品国产成人国产三级 | 欧美一区二区免费视频 | 亚洲一区毛片 | www.99re| 色欧美片视频在线观看 | 日韩和的一区二在线 | 欧美日韩一区二区在线播放 | 亚洲一区中文字幕 | 黄色大片免费网站 | 美女久久久久 | 国产精品揄拍一区二区 | 欧美一级大片免费看 | 国产美女永久免费无遮挡 | 夜夜草| 精品久久久久久久久久 | 亚洲国产成人精 | 国产成人一区二区三区精 | 日本三级线观看 视频 | 中文字幕精品一区二区三区精品 | www国产亚洲精品 | 国产一区二区观看 | 国产超碰人人爽人人做人人爱 | 老外黄色一级片 | 日韩电影在线一区 | 在线不卡视频 | 成人h视频在线 | 亚洲视频中文字幕 | 热久久999| 色男人的天堂 |