<T> T
表示返回值是一個泛型,傳遞啥,就返回啥類型的數據,而單獨的T
就是表示限制你傳遞的參數類型,這個案例中,通過一個泛型的返回方式,獲取每一個集合中的第一個數據, 通過返回值<T> T
和T
的兩種方法實現
<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);}
}