Java泛型類、重構(gòu)的使用及說明
一、泛型類
定義:類<> 表示泛型類 eg:
public class text <T>{
T t;
public T getT() {
return t;
}
public void setT(T t) {
this.t = t;
}
}text<>就是泛型類,泛型的本質(zhì)是參數(shù)化類型,所操作的數(shù)據(jù)類型被指定為一個(gè)參數(shù)。可以看出這比較抽象。所以可以理解成模板,或者方程式,輸入不同參數(shù)實(shí)現(xiàn)不同結(jié)果。
這有一個(gè)例子:對(duì)于輸出String int double 自己定義一個(gè)輸出方法 ,main函數(shù)調(diào)用輸出方法。
在沒有使用泛類之前,創(chuàng)建對(duì)象或者使用都需要定義好函數(shù)或者方法,且這都是固定死的模板,所以對(duì)于不同類型,要寫不同輸出方法。
而使用范類之后可以理解:這是一個(gè)萬能模板,其中類型或者對(duì)象并沒有寫死。只要把類型定義成變量,在沒有輸出之前都是,直到調(diào)用輸出才需要直到其類型。所以只需要一個(gè)者方法。
package 泛型類;
public class text <T>{//泛型
T t;//可以理解未定型 ,使用時(shí)在賦類型
public T getT() {//get,set方法
return t;
}
public void setT(T t) {
this.t = t;
}
public static void main(String[] args) {
text cs=new text();
String s="您好";
cs.setT(s);//傳遞后T就是String類型
System.out.println(cs.getT());
int i=1;
cs.setT(i);//傳遞后T就是int類型
System.out.println(cs.getT());
double d=3.14;
cs.setT(d);//傳遞后T就是double類型
System.out.println(cs.getT());
}
}結(jié)果:

如果不用泛型結(jié)果輸出類型就本應(yīng)該是固定的如下:
package 非泛型類;
public class textcs {
String s;
public String getS() {
return s;
}
public void setS(String s) {
this.s = s;
}
public static void main(String[] args) {
textcs cs=new textcs();
String s="您好";
cs.setS(s);
System.out.println(cs.getS());
}
} 
package 非泛型類;
public class textcs2 {
int i;
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
public static void main(String[] args) {
textcs2 cs=new textcs2();
int i=1;
cs.setI(i);
System.out.println(cs.getI());
}
}

不難看出泛型如同模板,不是固定的,但是運(yùn)行時(shí)必須明確指定具體的類型。
實(shí)戰(zhàn)中泛型的使用:

如果不定義泛型類,應(yīng)該創(chuàng)建學(xué)生集合 ArrayList<student> list=new ArrayList<>(); //寫死了。 如果在創(chuàng)建一個(gè)老師集合,就要到這個(gè)類來改把student改teacher比較麻煩。
定義泛型類后,要調(diào)用聲明即可,可以是老師,可以是學(xué)生,可以是其他集合,更靈活更方便。
其實(shí)我們也常用泛型類 比如:ArrayList<Int> 整形集合 ArrayList<String> 字符型集合.....
二、重構(gòu)
1.什么是重構(gòu):
- 簡單講:重構(gòu)就是對(duì)已有代碼優(yōu)化。
- 定義:重構(gòu)是指通過對(duì)軟件系統(tǒng)中的代碼進(jìn)行修改,改善其設(shè)計(jì)、結(jié)構(gòu)和可讀性的過程,而不改變其外部行為。重構(gòu)目的在提高代碼的質(zhì)量,使其更易于理解、擴(kuò)展和維護(hù)。
2.為什么需要重構(gòu)(重構(gòu)帶來好處):
- 提高代碼質(zhì)量:重構(gòu)可以去除冗余、復(fù)雜和低效的代碼,使代碼更具可讀性、可維護(hù)性和可擴(kuò)展性。
- 簡化理解與調(diào)試:通過重構(gòu),可以將復(fù)雜的代碼分解成更小、更簡潔的部分,從而更容易理解和調(diào)試。
- 優(yōu)化性能:重構(gòu)可以幫助我們識(shí)別出潛在的性能問題,并進(jìn)行優(yōu)化,使代碼運(yùn)行更高效。
- 改進(jìn)設(shè)計(jì):重構(gòu)可以改進(jìn)系統(tǒng)的整體設(shè)計(jì),使其更靈活、可擴(kuò)展和符合設(shè)計(jì)原則。
- 提高團(tuán)隊(duì)協(xié)作:重構(gòu)可以使代碼更加清晰和可讀,有利于團(tuán)隊(duì)成員之間的合作與溝通。
- 擴(kuò)展功能:通過重構(gòu),可以為系統(tǒng)添加新的功能和特性,而不會(huì)產(chǎn)生額外的復(fù)雜性和風(fēng)險(xiǎn)。
總結(jié):重構(gòu)可以提高代碼質(zhì)量、簡化理解與調(diào)試、優(yōu)化性能、改進(jìn)設(shè)計(jì)、提高團(tuán)隊(duì)協(xié)作并擴(kuò)展功能,進(jìn)而提高開發(fā)效率和軟件質(zhì)量。
3.運(yùn)用場景:
- 代碼維護(hù)、性能優(yōu)化、架構(gòu)改進(jìn)、代碼審查與重構(gòu)、團(tuán)隊(duì)合作與知識(shí)分享,以及新功能開發(fā)等。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java 基于Spire.Cloud.SDK for Java在PDF中繪制形狀
這篇文章主要介紹了Java 基于Spire.Cloud.SDK for Java在PDF中繪制形狀,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
Java Socket實(shí)現(xiàn)傳輸壓縮對(duì)象的方法示例
這篇文章主要介紹了Java Socket實(shí)現(xiàn)傳輸壓縮對(duì)象的方法,結(jié)合具體實(shí)例形式分析了java socket針對(duì)數(shù)據(jù)的壓縮、傳輸、接收、解壓縮等操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-06-06
揭秘Spring核心注解@Configuration與@Component的本質(zhì)區(qū)別
在Spring框架中,@Configuration和@Component都是常用的注解,但它們有著本質(zhì)的區(qū)別,本文將深入剖析這兩者的核心區(qū)別,并通過代碼示例展示它們的實(shí)際行為差異2025-07-07
Java wait和notifyAll實(shí)現(xiàn)簡單的阻塞隊(duì)列
這篇文章主要介紹了Java wait和notifyAll實(shí)現(xiàn)簡單的阻塞隊(duì)列,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
Java實(shí)現(xiàn)寵物商店管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)寵物商店管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-10-10
MyBatis Mapper.xml入?yún)ist使用in函數(shù)問題
文章主要講述了在使用MyBatis的Mapper.xml文件時(shí),如何正確地在in函數(shù)中使用List作為入?yún)?作者強(qiáng)調(diào)了完整拷貝<if>...</if>格式的重要性,并指出稍微的改動(dòng)就會(huì)導(dǎo)致錯(cuò)誤2025-02-02

