Java之泛型<T> T与T的用法
(1) T表示返回值是一个泛型,传递什么类型,就返回什么类型的数据。T是一个占位符,用来告诉编译器,这个东西先给我留着,等我编译的时候,告诉你。 (2)单独的T就是表示当前对象创建时,就限制你传递的参数类型。 使用方式: (1)T 用法
package xxxx; 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); } }
(2)T 用法,这种方法一般多用于共同操作一个类对象,然后获取里面的集合信息
package xxxxxx; 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); } }
总结一句话: 第一种用法Demo类的getListFisrt方法可以接受任意类型List参数,*** 第二种Demo类在初始化的时候已经限定了T的类型,所以getListFirst方法只能接受指定类型的参数。
下一篇:
easyExcel 指定行列导出图片