1. 程式人生 > 其它 >Git:27---分散式Git(維護專案:應用來自郵件的補丁(apply、am)、檢出遠端分支)

Git:27---分散式Git(維護專案:應用來自郵件的補丁(apply、am)、檢出遠端分支)

Java之泛型<T> T與T的用法

  原文連結:https://www.cnblogs.com/jpfss/p/9929108.html

<T> T表示返回值是一個泛型,傳遞啥,就返回啥型別的資料,而單獨的T就是表示限制你傳遞的引數型別,這個案例中,通過一個泛型的返回方式,獲取每一個集合中的第一個資料, 通過返回值<T> TT的兩種方法實現

<T> T用法

這個<T> T表示的是返回值T是泛型,T是一個佔位符,用來告訴編譯器,這個東西先給我留著,等我編譯的時候,告訴你。

package com.yellowcong.test;

import java.util.ArrayList;
import java.util.List;

import org.apache.poi.ss.formula.functions.T;

public class Demo {

    public static void main(String[] args) {

        Demo demo = new Demo();

        //獲取string型別
        List<String> array = new ArrayList<String>();
        array.add("test");
        array.add("doub");
        String str = demo.getListFisrt(array);
        System.out.println(str);

        //獲取nums型別
        List<Integer> nums = new ArrayList<Integer>();
        nums.add(12);
        nums.add(13);

        Integer num = demo.getListFisrt(nums);
        System.out.println(num);
    }

    /**
     * 這個<T> T 可以傳入任何型別的List
     * 引數T
     *     第一個 表示是泛型
     *     第二個 表示返回的是T型別的資料
     *     第三個 限制引數型別為T
     * @param data
     * @return
     */
    private <T> T getListFisrt(List<T> data) {
        if (data == null || data.size() == 0) {
            return null;
        }
        return data.get(0);
    }

}

T 用法

返回值,直接寫T表示限制引數的型別,這種方法一般多用於共同操作一個類物件,然後獲取裡面的集合資訊啥的。

package com.yellowcong.test;

import java.util.ArrayList;
import java.util.List;

public class Demo2<T> {

    public static void main(String[] args) {

        //限制T 為String 型別
        Demo2<String> demo = new Demo2<String>();

        //獲取string型別
        List<String> array = new ArrayList<String>();
        array.add("test");
        array.add("doub");
        String str = demo.getListFisrt(array);
        System.out.println(str);

        //獲取Integer型別 T 為Integer型別
        Demo2<Integer> demo2 = new Demo2<Integer>();
        List<Integer> nums = new ArrayList<Integer>();
        nums.add(12);
        nums.add(13);
        Integer num = demo2.getListFisrt(nums);
        System.out.println(num);
    }

    /**
     * 這個只能傳遞T型別的資料
     * 返回值 就是Demo<T> 例項化傳遞的物件型別
     * @param data
     * @return
     */
    private T getListFisrt(List<T> data) {
        if (data == null || data.size() == 0) {
            return null;
        }
        return data.get(0);
    }
}