java 泛型 父子,Java泛型-mb601cf8a78cc07的博客-51CTO博客
Java泛型
泛型類
即把不確定的數據元素類型用一個泛型占位符表示@Data
public?class?Person?{
private?T?name;
private?T?address;
}Person?person=?new?Person<>();
person.setName("attack204");
System.out.println(person.getName());
多類型泛型
即需要傳遞多個類型占位符,一個常見的應用是map@Data
public?class?MyMap?{
private?K?key;
private?V?value;
public?void?setKeyAndValue(K?key,?V?value)?{
this.key?=?key;
this.value?=?value;
}
}MyMap?myMap?=?new?MyMap<>();
myMap.setKeyAndValue("attack204",?2333);
System.out.println(myMap.getKey());
System.out.println(myMap.getValue());
普通方法泛型@Data
public?class?Person?{
private?T?name;
private?T?address;
//以下兩種方法都可以
public?String?show(T?inputName)?{
return?inputName?+?"is?showing";
}
public??String?show2(E?input)?{
return?input?+?"is?showing?two";
}
}Person?person?=?new?Person<>();
System.out.println(person.show("attack204"));
System.out.println(person.show2("attack203"));
靜態方法泛型@Data
public?class?Person?{
private?T?name;
private?T?address;
//注意,靜態方法只能調用靜態變量,T不是靜態變量
//因此不能寫成?public?static?String?show(T?inputName)?{
public?static??String?show(E?inputName)?{
return?inputName?+?"is?showing";
}
}System.out.println(Person.show("attack204"));
泛型接口
和上面差不多一樣interfacepublic?interface?PersonInt?{
public?String?show(T?name);
}implementpublic?class?PersonImpl?implements?PersonInt?{
@Override
public?String?show(String?name)?{
return?name?+?"is?showing?three";
}
}
或者public?class?PersonImpl?implements?PersonInt?{
@Override
public?String?show(T?name)?{
return?name?+?"is?showing?three";
}
}mainPersonImpl?person?=?new?PersonImpl();
System.out.println(person.show("attack204"));
或者PersonImpl?person?=?new?PersonImpl<>();
System.out.println(person.show("attack204"))
擦除模式定義:java中的泛型只存在于編譯階段,在反射階段會被擦除。
考慮這樣一段代碼Person?p?=?new?Person<>();
Person?p1?=?new?Person<>();
system.out.println(p?==?p1);
//true目的:為了兼容低版本的jdk
通配符
在泛型中不識別父子繼承關系(具體見視頻)
因此需要通配符>來解決此錯誤
上邊界與下邊界
用了>相當于此處可以是任意類型,但是有時候需要對其進行限定
extends T>表示只能傳入T及其子類,需要讀取,但不寫入時使用
super T> 表示只能傳入T及其父類,需要寫入,但不讀取時使用
總結
以上是生活随笔為你收集整理的java 泛型 父子,Java泛型-mb601cf8a78cc07的博客-51CTO博客的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的世界手游月蚀光与暗故人在哪里?
- 下一篇: 简书php硬件交互,php设计模式——适