Java之泛型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);}
}
Java之泛型T T与T的用法相关推荐
- Java通过泛型的模板类型实例化对象
Java通过泛型的模板类型实例化对象 最近自己研究了下mvvm框架,使用泛型的方式可节省很多代码,并且可以合并很多冗余代码,为了最大化的精简代码想到了通过泛型的type用反射的方式实例化对象,这样对象 ...
- 【Java】泛型中 extends 和 super 的区别?
<? extends T>和<? super T>是Java泛型中的"通配符(Wildcards)"和"边界(Bounds)"的概念. ...
- 聊聊Java的泛型及实现
泛型基础 泛型是对Java语言类型系统的一种扩展,有点类似于C++的模板,可以把类型参数看作是使用参数化类型时指定的类型的一个占位符.引入泛型,是对Java语言一个较大的功能增强,带来了很多的好处: ...
- java关于泛型的实验代码_[改善Java代码]强制声明泛型的实际类型
Arrays工具类有一个方法asList可以把一个变长参数或数组变成列表,但是它有一个缺点:它所生成的List长度是不可改变的,而这在我们的项目开发中很不方便. importjava.util.Arr ...
- java基础-泛型举例详解
泛型 泛型是JDK5.0增加的新特性,泛型的本质是参数化类型,即所操作的数据类型被指定为一个参数.这种类型参数可以在类.接口.和方法的创建中,分别被称为泛型类.泛型接口.泛型方法. 一.认识泛型 在没 ...
- java gt_JAVA泛型知识--gt; lt;? extends Tgt;和lt;? super Tgt;
extends T> 和 super T> 是Java泛型中的"通配符(Wildcards)" 和 "边界(Bounds)"的概念 extends ...
- java使用泛型后消除泛型_如何以及何时使用泛型
java使用泛型后消除泛型 本文是我们名为" 高级Java "的学院课程的一部分. 本课程旨在帮助您最有效地使用Java. 它讨论了高级主题,包括对象创建,并发,序列化,反射等. ...
- java实现泛型检索_高级Java泛型:检索泛型类型参数
java实现泛型检索 在JDK5中引入Java泛型之后, Java泛型Swift成为许多Java程序的组成部分. 但是,乍一看似乎很简单的Java泛型,程序员很快就会迷失此功能. 大多数Java程序员 ...
- java object转泛型_为什么Java的泛型要用擦除实现
在 Java 中的 泛型 ,常常被称之为 伪泛型 ,究其原因是因为在实际代码的运行中,将实际类型参数的信息擦除掉了 (Type Erasure) .那是什么原因导致了 Java 做出这种妥协的呢?下面 ...
最新文章
- python二维列表排序
- GAN 模型生成山水画,骗过半数观察者,普林斯顿大学本科生出品
- 关于pygame和tkinter窗口的那件事-线程
- SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的 1
- php curl hostname,php – 如何解决cURL错误(7):无法连接到主机?
- 求100以内质数或者更多
- 为何Spark更高效?
- mongoDB mac 安装 小白必备
- 解决 VMware 新装 CentOS 7.* 连不上网络
- 【Multisim仿真】NE555组成的振荡器电路(占空比可调)
- 蓝牙连接不上车要hfp_hfp是什么意思车上
- 移动魔百盒CM201-2,YS代工-免拆机-直刷固件及教程
- Mysql 省市区字典(带层级,带经纬度,带拼音)字典版
- uniapp中登录注册页面以视频为背景
- Android在Manifest里的权限配置
- 如何登录无线web认证服务器,路由器如何设置web认证的方式连接免费WIFI
- 2020040920200418知交零落实是人生常态
- 什么是Web应用防火墙
- 联想扬天计算机排行,联想电脑CPU天梯图排行榜,2018联想电脑CPU天梯图新版
- 有空赚赚美元! 美国的外包项目交易网站
热门文章
- 统计一个数的补码中二进制中1的个数
- 7-1 FireTruck 消防车 uva208
- Could NOT find SDL_image (missing:SDL_IMAGE_LIBRARIES SDL_IMAGE_INCLUDE_DIRS)
- propattr区别和用法,以多选框为例
- c++11编码规范 NULL还是nullptr
- hadoop深入研究:(五)——Archives
- EBS中Java并发程序笔记(1)
- 二级c语言无纸化三合一_学习攻略|计算机二级考试重点及注意事项
- STM32系统定时器SysTick(只能向下递减)延时闪烁灯
- date js 半年_JavaScript Date对象