泛型是JAVA重要的特性,使用泛型編程,可以使代碼復用率提高。
實作:在泛型方法中使用通配符
建立一個類別:WildcardsTest。
建立一個方法getMiddle()用於獲得給定清單的中間值。
在泛型中,使用「?」作為通配符,通配符的使用與普通的型別參數類似,如通配符可以利用extends關鍵字來設定取值的上限。如
extends Number>
#表示Byte,Double,Float,Integer都適合這個型別參數。
還有,有上限,也有下限,如
super Number>
w意思是型別參數是Number類別的父類,如Object.
package com.xiaoxuzhu; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Description: * * @author xiaoxuzhu * @version 1.0 * * <pre class="brush:php;toolbar:false"> * 修改记录: * 修改后版本 修改人 修改日期 修改内容 * 2022/5/10.1 xiaoxuzhu 2022/5/10 Create *
##泛型
可用? 類型通配符
通配符的幾種形式:1.無限定通配符,>。 2.上限萬用字元, extends User>。表示參數類型只能是User的子類別。 3.下限萬用字元, super User>。表示參數類型只能是User的父類別。public class P<T> { private T t; public T getT(){ return t; } //通配符 //设置指定类型的范围,超过范围就会报错 //extends : 指定范围必须是其(这里是List)子类 public void set(P<? extends List> list){ return; } //super : 指定类型必须是其(这里是List)父类 public void setSuper(P<? super List> list){ return; } public static void main(String[] args) { new P<String>(); //T会被替换成String new P<Integer>(); //T会被替换成Integer Person<String,List,Double,User> person = new Person<String,List,Double,User>();//T会被替换成String,B会被替换成List... person.eat("鱼"); } } class User<T extends P>{//这里给类的泛型指定范围,T必须要继承类P。 } //一个类可以同时指定多个泛型 class Person<T,B,S,N>{ private T t; private B b; private S s; private N n; public void eat(T t){ this.t = t; System.out.println("我正在吃"+this.t); } }
以上是如何使用通配符強化Java的泛型效能的詳細內容。更多資訊請關注PHP中文網其他相關文章!