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

最新文章

  1. ios 关于问题 no matching provisioning profiles found
  2. 使用C#类向数据库添加数据的例子源码
  3. java中byte, int的转换
  4. 验证 Xcode 是否来自正规渠道
  5. Java 使用jaxp添加节点
  6. 小度Wifi_设置
  7. 【Leetcode】355. Design Twitter
  8. java截取url中的值
  9. 解决IE6浏览器下position:fixed固定定位问题
  10. java基本打印练习《我行我素购物系统》
  11. 分享一个随机更改 MAC地址 软件
  12. Netty之二进制文件传输
  13. poj 2888 Magic Bracelet(Polya+矩阵快速幂)
  14. Pytorch 初识
  15. 2018/03/22 每日一个Linux命令 之 grep
  16. tomcat应用org.apache.catalina.LifecycleException: Failed to stop component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]异常的根本原因
  17. ADO调用分页查询存储过程
  18. Codeforces Round #213 (Div. 1) B - Free Market 思维+背包 好题
  19. 微信支付 WeixinJSBridge is not defined 报错
  20. HDU 4675 GCD of Sequence (2013多校7 1010题 数学题)

热门文章

  1. python序列中是否包含某个元素
  2. jedate-开始使用一款好用的时间插件
  3. 如何把别人的原理图和pcb图建立一个完整的工程
  4. 常用协议(SPI, UART, I2C)
  5. Redis实现Mybatis的二级缓存
  6. 【Codeforces Round #435 (Div. 2) A】Mahmoud and Ehab and the MEX
  7. 2014年武汉的IT行情好像不太好
  8. 【u249】新斯诺克
  9. ActiveMQ简单入门实例
  10. 使用perl读取Excel