泛型的概念:把型別明確工作推遲到建立物件或者呼叫方法時才明確的一種機制;
泛型的語法 : 《引用型別,引用型別…>使用泛型好處是避免了向下轉型,例如集合中的元素:
//如果不使用泛型,取出元素後,需要向下轉型成為本類才可以獲得;
arraylist arraylist =
newarraylist()
; arraylist.
add(
"abc");
arraylist.
add(
"abc");
arraylist.
add(
"abc");
arraylist.
add(
"abc");
object obj = arraylist.
get(0)
; string string=
(string) obj;
//使用泛型後,就可以直接取出元素;
arraylist
list2 =
newarraylist
(); list2.
add(
"abc");
list2.
add(
"abc");
list2.
add(
"abc");
list2.
add(
"abc");
string s = list2.
get(0)
; system.out.
println
(s);
泛型也可以應用到類,方法和介面上:
2.1.類:
//定義的泛型demo類,指的是成員變數型別為泛型;
public
class
demo
public
void
setobject
(t object)
}//測試類:
public
class
mytest
}
2.2. 介面:
//建立泛型到介面上,介面中方法的返回值和形參都是泛型,等到實現介面時,才明確具體的型別;
public
inte***ce
myinte***ce
//1. 建立匿名內部類時明確介面上的型別:
public
class
mytest};
}//2. 或者實現泛型介面時明確:
public
class
sonimplements
myinte***ce
}//3. 泛型類也可以實現泛型介面,最後可以在測試類main函式裡建立該類物件,明確該介面型別:
public
class
son2
implements
myinte***ce
}public
class
mytest
}
3.3. 方法:
public
class
mytest
}class
myutils
}
注意:<?>為泛型萬用字元
public
class
mytest2
}class
person
class
student
extends
person
class
doctor
extends
person
class
nurse
extends
person
泛型的一些理解
泛型是為了解決型別不確定的問題,業務邏輯相同只有物件型別不同。是屬於編譯期的,編譯器編譯完之後,帶有泛型的程式,生成的.class位元組碼檔案中將不存在泛型。以此使程式在執行時效率不受影響,這個過程被稱為泛型 擦除 泛型泛型又可以分為集合泛型和自定義泛型。一 集合泛型 list list1 new ...
stl 泛型的一些基本
一 泛型程式設計的一些基本 1 泛型程式設計 1.1 程式盡可能的通用。1.2 將演算法從資料結構中抽象出來,成為通用。1.3 模板並不是單純的函式,不能憑空的生成,是用來產生 的 可以減少 量。1.4 template 中不要使用class,使用typename 1.5 模板程式設計與巨集的區別 ...
String 一些問題
前言 等號 對於基本型別,比較的是值,對於引用型別,比較的是記憶體位址。1.在物件池中建立,如果常量池中已經存在則返回常量池中已經有的。private static void test1 結果 true 2.乙個在string pool中,乙個在堆中。private static void test...