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

淩亂°似流年 2023-01-07 10:19 206阅读 0赞

T表示返回值是一个泛型,传递什么类型,就返回什么类型的数据,而单独的T就是表示当前对象创建时,就限制你传递的参数类型,下面案例中,通过一个泛型的返回方式,获取每一个集合中的第一个数据, 通过返回值 T 和T的两种方法实现。

1、T 用法

这个 T 表示的是返回值T是泛型,T是一个占位符,用来告诉编译器,这个东西先给我留着,等我编译的时候,告诉你。

  1. package xxxx;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import org.apache.poi.ss.formula.functions.T;
  5. public class Demo {
  6. public static void main(String[] args) {
  7. Demo demo = new Demo();
  8. //获取string类型
  9. List<String> array = new ArrayList<String>();
  10. array.add("test");
  11. array.add("doub");
  12. String str = demo.getListFisrt(array);
  13. System.out.println(str);
  14. //获取nums类型
  15. List<Integer> nums = new ArrayList<Integer>();
  16. nums.add(12);
  17. nums.add(13);
  18. Integer num = demo.getListFisrt(nums);
  19. System.out.println(num);
  20. }
  21. /** * 这个<T> T 可以传入任何类型的List * 参数T * 第一个 表示是泛型 * 第二个 表示返回的是T类型的数据 * 第三个 限制参数类型为T * @param data * @return */
  22. private <T> T getListFisrt(List<T> data) {
  23. if (data == null || data.size() == 0) {
  24. return null;
  25. }
  26. return data.get(0);
  27. }
  28. }

2、T 用法
返回值,直接写T表示限制参数的类型,这种方法一般多用于共同操作一个类对象,然后获取里面的集合信息啥的。

  1. package xxxxxx;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. public class Demo2<T> {
  5. public static void main(String[] args) {
  6. //限制T 为String 类型
  7. Demo2<String> demo = new Demo2<String>();
  8. //获取string类型
  9. List<String> array = new ArrayList<String>();
  10. array.add("test");
  11. array.add("doub");
  12. String str = demo.getListFisrt(array);
  13. System.out.println(str);
  14. //获取Integer类型 T 为Integer类型
  15. Demo2<Integer> demo2 = new Demo2<Integer>();
  16. List<Integer> nums = new ArrayList<Integer>();
  17. nums.add(12);
  18. nums.add(13);
  19. Integer num = demo2.getListFisrt(nums);
  20. System.out.println(num);
  21. }
  22. /** * 这个只能传递T类型的数据 * 返回值 就是Demo<T> 实例化传递的对象类型 * @param data * @return */
  23. private T getListFisrt(List<T> data) {
  24. if (data == null || data.size() == 0) {
  25. return null;
  26. }
  27. return data.get(0);
  28. }
  29. }

总结一句话:
第一种用法Demo类的getListFisrt方法可以接受任意类型List参数,
第二种Demo类在初始化的时候已经限定了T的类型,所以getListFirst方法只能接受List类型的参数。

发表评论

表情:
评论列表 (有 0 条评论,206人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JavaTTT

    <T> T表示返回值是一个泛型,传递什么类型,就返回什么类型的数据,而单独的T就是表示当前对象创建时,就限制你传递的参数类型,下面案例中,通过一个泛型的返回方式,获取每一个集合

    相关 JavaTTT

    <T> T表示返回值是一个泛型,传递啥,就返回啥类型的数据,而单独的T就是表示限制你传递的参数类型,这个案例中, 通过一个泛型的返回方式,获取每一个集合中的第一