Java泛型的我的理解

java泛型的意義

首選,咱們說一下,爲何要用泛型,泛型來解決什麼問題. 泛型解決, 某一個集合類內部添加多個類的某一種類的對象 之前咱們想用一個類,來解決這個問題,咱們能夠這樣java

Class Test {

private Object  obj;

public void setObj(Object ){
this.obj=obj;
}
public Object getObj(){
return this.obj
}

}
//缺點是:向上轉化的弊端,沒法調用內部對象的自有方法,只能存取.

//另外一種方法也能夠寫出無數個,適配不一樣類內部類型,固然這樣寫會不少

Class StringTest {

private String  obj;

public void setObj(String ){
this.obj=obj;
}
public String getObj(){
return this.obj
}
}
缺點是:累不累啊,,我都累了.想存多少個得寫多少個類.

泛型不但使代碼複用並且解決了向上轉型的缺點. 泛型的寫法: 類型參數(泛型參數)由尖括號包圍,多個參數由逗號分隔,如 或 <T, E>。 建議書寫:習慣上使用單個大寫字母,一般狀況下,K 表示鍵,V 表示值,E 表示異常或錯誤,T 表示通常意義上的數據類型。 泛型方法和泛型類; 泛型類:ide

public class Test {
    public static void main(String[] args){

        Person<String> person=new Person<String>();
        person.setT("一個泛型類");
        System.out.println(person.getT());

    }

}
class Person<T>{
    T t;

    public T getT() {
        return t;
    }

    public void setT(T t) {
        this.t = t;
    }

    @Override
    public String toString() {
        return "Person{" +
                "t=" + t +
                '}';
    }
}

泛型方法:ui

public class test1 {
    public static void main(String[] args){
        Person1 person = new Person1();
        person.doubleT("泛型方法");
    }
}

class Person1{

    public <T>  T  doubleT(T t){
      return t;
    }

}

List <? extends Fruit> 意思: List中全部元素都是Fruit的子類(包含自己), List <? super Fruit> 意思: List中全部元素都是Fruit的父類(包含自己)this

相關文章
相關標籤/搜索