Java 泛型 T 與 T的用法


T 與 T 比較

T是Type的首字母縮寫; T 表示“返回值”是一個泛型,傳遞什么類型,就返回什么類型;而單獨的“T”表示限制傳遞的參數類型。

T的用法

T表示返回值T是泛型,T只是一個占位符,用來告訴編譯器,這個東西先給我留着,等我編譯的時候再告訴你是什么類型。

public class TTDemo {
    public static void main(String[] args){
        TTDemo ttDemo = new TTDemo();

        // 獲取String類型
        List<String> array = new ArrayList<>();
        array.add("aaa");
        array.add("bbb");
        String str =  ttDemo.getListFirst(array);
        System.out.println(str);

        // 獲取Number類型
        List<Integer> nums = new ArrayList<>();
        nums.add(1);
        nums.add(2);
        Integer num = ttDemo.getListFirst(nums);
        System.out.println(num);
    }

    private <T> T getListFirst(List<T> data){
        if(data == null || data.size() == 0){
            return null;
        }
        return data.get(0);
    }
}

單獨T的用法

單獨的T表示限制參數的類型。

public class TDemo<T> {
    public static void main(String[] args){

        // 獲取String類型
        TDemo<String> tDemo = new TDemo<>();  // 限制"T"為String類型
        List<String> array = new ArrayList<>();
        array.add("aaa");
        array.add("bbb");
        String str =  tDemo.getListFirst(array);
        System.out.println(str);

        // 獲取Number類型
        TDemo<Integer> tDemo1 = new TDemo<>();  // 限制"T"為Integer類型
        List<Integer> nums = new ArrayList<>();
        nums.add(1);
        nums.add(2);
        Integer num = tDemo1.getListFirst(nums);
        System.out.println(num);
    }

    private T getListFirst(List<T> data){
        if(data == null || data.size() == 0){
            return null;
        }
        return data.get(0);
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM