什么是泛型?
泛型就是適用于許多許多類型,對類型參數(shù)化。
怎么創(chuàng)建一個(gè)泛型呢
class 泛型類名稱<類型形參列表> {
// 這里可以使用類型參數(shù)
}
class ClassName<T1, T2, ..., Tn> {
}
class 泛型類名稱<類型形參列表> extends 繼承類/* 這里可以使用類型參數(shù) */ {
// 這里可以使用類型參數(shù)
}
class ClassName<T1, T2, ..., Tn> extends ParentClass<T1> {
// 可以只使用部分類型參數(shù)
}
下面我們看兩段代碼的對比
class MyArray {
public Object[] array = new Object[10];
public Object getPos(int pos) {
return this.array[pos];
}
public void setVal(int pos,Object val) {
this.array[pos] = val;
}
}
public class TestDemo {
public static void main(String[] args) {
MyArray myArray = new MyArray();
myArray.setVal(0,10);
myArray.setVal(1,"hello");//字符串也可以存放
String ret = myArray.getPos(1);//編譯報(bào)錯(cuò)
System.out.println(ret);
}
}
用泛型改寫
class MyArray<T> {
public T[] array = (T[])new Object[10];//1
public T getPos(int pos) {
return this.array[pos];
}
public void setVal(int pos,T val) {
this.array[pos] = val;
}
}
public class TestDemo {
public static void main(String[] args) {
MyArray<Integer> myArray = new MyArray<>();//2
myArray.setVal(0,10);
myArray.setVal(1,12);
int ret = myArray.getPos(1);//3
System.out.println(ret);
myArray.setVal(2,"bit");//4
}
}

泛型類<類型實(shí)參> 變量名; // 定義一個(gè)泛型類引用
new 泛型類<類型實(shí)參>(構(gòu)造方法實(shí)參); // 實(shí)例化一個(gè)泛型類對象
示例
MyArray<Integer> list = new MyArray<Integer>();
泛型只能接受類
泛型方法文章來源:http://www.zghlxwxcb.cn/news/detail-852054.html
方法限定符 <類型形參列表> 返回值類型 方法名稱(形參列表) { ... }
public class Util {
//靜態(tài)的泛型方法 需要在static后用<>聲明泛型類型參數(shù)
public static <E> void swap(E[] array, int i, int j) {
E t = array[i];
array[i] = array[j];
array[j] = t;
}
}
通配符文章來源地址http://www.zghlxwxcb.cn/news/detail-852054.html
List<?>
?表示一個(gè)可以容納任何類型元素的列表。
public class TestDemo {
public static void main(String[] args) {
Message<Integer> message = new Message() ;
message.setMessage(55);
fun(message);
}
// 此時(shí)使用通配符"?"描述的是它可以接收任意類型,但是由于不確定類型,所以無法修改
public static void fun(Message<?> temp){
//temp.setMessage(100); 無法修改!
System.out.println(temp.getMessage());
}
}
到了這里,關(guān)于【數(shù)據(jù)結(jié)構(gòu)】泛型(分享重點(diǎn))的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!