原文連結:https://www.cnblogs.com/east7/p/13210761.html?utm_source=tuicool
![]()
Java之泛型<T> T與T的用法 表示傳回值是一個泛型,傳遞啥,就傳回啥類型的資料,而單獨的
<T> T
就是表示限制你傳遞的參數類型,這個案例中,通過一個泛型的傳回方式,擷取每一個集合中的第一個資料, 通過傳回值
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);
}
}