第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

<T>(尖括號)在Java中是什么意思?

<T>(尖括號)在Java中是什么意思?

胡說叔叔 2019-07-06 16:18:47
<T>(尖括號)在Java中是什么意思?我目前正在學習Java,最近被尖括號(<>)所困擾。他們到底是什么意思?public class Pool<T>{     public interface PoolFactory<T>{         public T createObject();     }     this.freeObjects= new ArrayList<T>(maxsize)}是什么<T>刻?。窟@是否意味著我可以創(chuàng)建一個類型為T?
查看完整描述

3 回答

?
千巷貓影

TA貢獻1829條經(jīng)驗 獲得超7個贊

<T>屬屬通??梢岳斫鉃椤癟型”。它取決于<>的左邊的類型,它實際上意味著什么。

我不知道PoolPoolFactory但你也提到ArrayList<T>,這是一個標準的Java類,因此我將討論這個問題。

通常,你不會在里面看到“T”,你會看到另一種類型。所以如果你看到ArrayList<Integer>例如,意思是“ArrayListInteger例如,許多類使用泛型來約束容器中元素的類型。HashMap<String, Integer>,意思是“一張地圖String鑰匙和Integer價值?!?/trans>

您的池示例有點不同,因為您在這里定義一堂課。因此,在這種情況下,您正在創(chuàng)建一個類,其他人可以用特定類型實例化類來代替T。例如,我可以創(chuàng)建一個類型為Pool<String>使用您的類定義。這意味著兩件事:

  • 我的

    Pool<String>

    會有一個接口

    PoolFactory<String>

    帶著

    createObject

    方法返回

    String

    S.
  • 內(nèi)部,

    Pool<String>

    會包含一個

    ArrayList

    弦樂樂隊。

這是個好消息,因為在另一個時間,我可以來創(chuàng)建一個Pool<Integer>它將使用相同的代碼,但是Integer無論你看到什么T在源頭。


查看完整回答
反對 回復 2019-07-06
?
收到一只叮咚

TA貢獻1821條經(jīng)驗 獲得超5個贊

它與java中的泛型有關。如果我提到ArrayList<String>這意味著我只能向該ArrayList添加字符串類型對象。

Java中泛型的兩個主要好處是:

  1. 減少程序中的強制轉換數(shù)量,從而減少程序中潛在錯誤的數(shù)量。
  2. 提高代碼清晰度


查看完整回答
反對 回復 2019-07-06
?
瀟湘沐

TA貢獻1816條經(jīng)驗 獲得超6個贊

真的很簡單。中引入的一個新特性J2SE 5..在類名之后指定角括號意味著要創(chuàng)建一個臨時數(shù)據(jù)類型,它可以容納任何類型的數(shù)據(jù)。

例子:

class A<T>{
    T obj;
    void add(T obj){
        this.obj=obj;
    }
    T get(){
        return obj;
    }}public class generics {
    static<E> void print(E[] elements){
        for(E element:elements){
            System.out.println(element);
        }
    }

    public static void main(String[] args) {
        A<String> obj=new A<String>();
        A<Integer> obj1=new A<Integer>();
        obj.add("hello");
        obj1.add(6);
        System.out.println(obj.get());
        System.out.println(obj1.get());

        Integer[] arr={1,3,5,7};
        print(arr);
    }}

而不是<T>,你實際上可以寫任何東西,而且它的工作方式也是一樣的。試著寫作<ABC>代替<T>.

這只是為了方便:

  • <T>

    被稱為任何類型
  • <E>

    As元素類型
  • <N>

    AS型
  • <V>

    作為價值
  • <K>

    作為關鍵

但你可以給它起任何你想要的名字,這并不重要。

此外,IntegerStringBooleanETC是Java的包裝類,它有助于在編譯期間檢查類型。例如,在上面的代碼中,obj是類型的String,所以您不能向它添加任何其他類型(嘗試obj.add(1),會造成錯誤)。同樣,obj1Integer類型,您不能向它添加任何其他類型(嘗試obj1.add("hello"),錯誤就會出現(xiàn))。


查看完整回答
反對 回復 2019-07-06
  • 3 回答
  • 0 關注
  • 1584 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號