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

<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);}
}

Java之泛型T T与T的用法相关推荐

  1. Java通过泛型的模板类型实例化对象

    Java通过泛型的模板类型实例化对象 最近自己研究了下mvvm框架,使用泛型的方式可节省很多代码,并且可以合并很多冗余代码,为了最大化的精简代码想到了通过泛型的type用反射的方式实例化对象,这样对象 ...

  2. 【Java】泛型中 extends 和 super 的区别?

    <? extends T>和<? super T>是Java泛型中的"通配符(Wildcards)"和"边界(Bounds)"的概念. ...

  3. 聊聊Java的泛型及实现

    泛型基础 泛型是对Java语言类型系统的一种扩展,有点类似于C++的模板,可以把类型参数看作是使用参数化类型时指定的类型的一个占位符.引入泛型,是对Java语言一个较大的功能增强,带来了很多的好处: ...

  4. java关于泛型的实验代码_[改善Java代码]强制声明泛型的实际类型

    Arrays工具类有一个方法asList可以把一个变长参数或数组变成列表,但是它有一个缺点:它所生成的List长度是不可改变的,而这在我们的项目开发中很不方便. importjava.util.Arr ...

  5. java基础-泛型举例详解

    泛型 泛型是JDK5.0增加的新特性,泛型的本质是参数化类型,即所操作的数据类型被指定为一个参数.这种类型参数可以在类.接口.和方法的创建中,分别被称为泛型类.泛型接口.泛型方法. 一.认识泛型 在没 ...

  6. java gt_JAVA泛型知识--gt; lt;? extends Tgt;和lt;? super Tgt;

    extends T> 和 super T> 是Java泛型中的"通配符(Wildcards)" 和 "边界(Bounds)"的概念 extends ...

  7. java使用泛型后消除泛型_如何以及何时使用泛型

    java使用泛型后消除泛型 本文是我们名为" 高级Java "的学院课程的一部分. 本课程旨在帮助您最有效地使用Java. 它讨论了高级主题,包括对象创建,并发,序列化,反射等. ...

  8. java实现泛型检索_高级Java泛型:检索泛型类型参数

    java实现泛型检索 在JDK5中引入Java泛型之后, Java泛型Swift成为许多Java程序的组成部分. 但是,乍一看似乎很简单的Java泛型,程序员很快就会迷失此功能. 大多数Java程序员 ...

  9. java object转泛型_为什么Java的泛型要用擦除实现

    在 Java 中的 泛型 ,常常被称之为 伪泛型 ,究其原因是因为在实际代码的运行中,将实际类型参数的信息擦除掉了 (Type Erasure) .那是什么原因导致了 Java 做出这种妥协的呢?下面 ...

最新文章

  1. python二维列表排序
  2. GAN 模型生成山水画,骗过半数观察者,普林斯顿大学本科生出品
  3. 关于pygame和tkinter窗口的那件事-线程
  4. SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的 1
  5. php curl hostname,php – 如何解决cURL错误(7):无法连接到主机?
  6. 求100以内质数或者更多
  7. 为何Spark更高效?
  8. mongoDB mac 安装 小白必备
  9. 解决 VMware 新装 CentOS 7.* 连不上网络
  10. 【Multisim仿真】NE555组成的振荡器电路(占空比可调)
  11. 蓝牙连接不上车要hfp_hfp是什么意思车上
  12. 移动魔百盒CM201-2,YS代工-免拆机-直刷固件及教程
  13. Mysql 省市区字典(带层级,带经纬度,带拼音)字典版
  14. uniapp中登录注册页面以视频为背景
  15. Android在Manifest里的权限配置
  16. 如何登录无线web认证服务器,路由器如何设置web认证的方式连接免费WIFI
  17. 2020040920200418知交零落实是人生常态
  18. 什么是Web应用防火墙
  19. 联想扬天计算机排行,联想电脑CPU天梯图排行榜,2018联想电脑CPU天梯图新版
  20. 有空赚赚美元! 美国的外包项目交易网站

热门文章

  1. 统计一个数的补码中二进制中1的个数
  2. 7-1 FireTruck 消防车 uva208
  3. Could NOT find SDL_image (missing:SDL_IMAGE_LIBRARIES SDL_IMAGE_INCLUDE_DIRS)
  4. propattr区别和用法,以多选框为例
  5. c++11编码规范 NULL还是nullptr
  6. hadoop深入研究:(五)——Archives
  7. EBS中Java并发程序笔记(1)
  8. 二级c语言无纸化三合一_学习攻略|计算机二级考试重点及注意事项
  9. STM32系统定时器SysTick(只能向下递减)延时闪烁灯
  10. date js 半年_JavaScript Date对象