Java 泛型<T> T 与 T的用法
T 与 T 比较
T是Type的首字母缩写; T 表示“返回值”是一个泛型,传递什么类型,就返回什么类型;而单独的“T”表示限制传递的参数类型。
T的用法
T表示返回值T是泛型,T只是一个占位符,用来告诉编译器,这个东西先给我留着,等我编译的时候再告诉你是什么类型。
public class TTDemo {
public static void main(String[] args){
TTDemo ttDemo = new TTDemo();
// 获取String类型
List<String> array = new ArrayList<>();
array.add("aaa");
array.add("bbb");
String str = ttDemo.getListFirst(array);
System.out.println(str);
// 获取Number类型
List<Integer> nums = new ArrayList<>();
nums.add(1);
nums.add(2);
Integer num = ttDemo.getListFirst(nums);
System.out.println(num);
}
private <T> T getListFirst(List<T> data){
if(data == null || data.size() == 0){
return null;
}
return data.get(0);
}
}
单独T的用法
单独的T表示限制参数的类型。
public class TDemo<T> {
public static void main(String[] args){
// 获取String类型
TDemo<String> tDemo = new TDemo<>(); // 限制"T"为String类型
List<String> array = new ArrayList<>();
array.add("aaa");
array.add("bbb");
String str = tDemo.getListFirst(array);
System.out.println(str);
// 获取Number类型
TDemo<Integer> tDemo1 = new TDemo<>(); // 限制"T"为Integer类型
List<Integer> nums = new ArrayList<>();
nums.add(1);
nums.add(2);
Integer num = tDemo1.getListFirst(nums);
System.out.println(num);
}
private T getListFirst(List<T> data){
if(data == null || data.size() == 0){
return null;
}
return data.get(0);
}
}
Java 泛型<T> T 与 T的用法的更多相关文章
- Java泛型总结---基本用法,类型限定,通配符,类型擦除
一.基本概念和用法 在Java语言处于还没有出现泛型的版本时,只能通过Object是所有类型的父类和类型强制转换两个特点的配合来实现类型泛化.例如在哈希表的存取中,JDK1.5之前使用HashMap的 ...
- Java 泛型 四 基本用法与类型擦除
简介 Java 在 1.5 引入了泛型机制,泛型本质是参数化类型,也就是说变量的类型是一个参数,在使用时再指定为具体类型.泛型可以用于类.接口.方法,通过使用泛型可以使代码更简单.安全.然而 Java ...
- Java泛型用法总结
普通泛型 class Point< T>{ // 此处可以随便写标识符号,T是type的简称 private T var ; // var的类型由T指定,即:由外部指定 public T ...
- JAVA 泛型 通配符? extends super限定,实例区分extends super限定的作用用法
java泛型中的关键字 ? 表示通配符类型 <? extends T> 既然是extends,就是表示泛型参数类型的上界,说明参数的类型应该是T或者T的子类. <? super T& ...
- 关于Java泛型实现原理的思考与一般用法示例总结
面向对象的一个重要目标是对代码重用的支持.支持这个目标的一个重要机制就是泛型机制.在1.5版本之前,java并没有直接支持泛型实现,泛型编程的实现时通过使用继承的一些基本概念来完成的. 这种方式的局限 ...
- 浅析Java 泛型
泛型是JavaSE5引入的一个新概念,但是这个概念在编程语言中却是很普遍的一个概念.下面,根据以下内容,我们总结下在Java中使用泛型. 泛型使用的意义 什么是泛型 泛型类 泛型方法 泛型接口 泛型擦 ...
- Java:泛型基础
泛型 引入泛型 传统编写的限制: 在Java中一般的类和方法,只能使用具体的类型,要么是基本数据类型,要么是自定义类型.如果要编写可以应用于多种类型的代码,这种刻板的限制就会束缚很多! 解决这种限制的 ...
- java泛型基础
泛型是Java SE 1.5的新特性, 泛型的本质是参数化类型, 也就是说所操作的数据类型被指定为一个参数. 这种参数类型可以用在类.接口和方法的创建中, 分别称为泛型类.泛型接口.泛型方法. Ja ...
- Java深度历险(五)——Java泛型
作者 成富 发布于 2011年3月3日 | 注意:QCon全球软件开发大会(北京)2016年4月21-23日,了解更多详情!17 讨论 分享到:微博微信FacebookTwitter有道云笔记邮件 ...
随机推荐
- util.inherits
util.inherits util.inherits(constructor, superConstructor)是一个实现对象间原型继承 的函数. JavaScript 的面向对象特性是基于原型的 ...
- mysql数据库sql优化——子查询优化
1.什么是子查询.表关联查询: 子查询:是指在主sql语句中的select或where子句中使用select查询语句:select a.name,(select b.name from b where ...
- jquery动态生成html代码绑定事件
今天工作中需要在页面动态生成html代码,但发现新生成的代码的click事件失效了(非动态生成的代码已经绑定了click事件),于是在网上找了很多解决办法,很多都比较复杂,且使用的jquery都比较老 ...
- iOS UITextView 输入内容实时更新cell的高度
iOS UITextView 输入内容实时更新cell的高度 2014-12-26 11:37 编辑: suiling 分类:iOS开发 来源:Vito Zhang'blog 11 4741 UIT ...
- 【微信】QQ邮箱助手不提醒解决
1.问题及原因: 微信上的QQ邮箱提醒功能失效了,收到信后不提醒.忘了是使用了TIM,还是使用了QQ邮箱之后才出现的. 不过原因是:QQ邮箱提醒被设置为仅在QQ邮箱客户端提醒 2.解决: 重新安装QQ ...
- Dart基础学习01--走近Dart
什么是Dart 在Dart的官网上是这样介绍Dart的: Dart is an open-source, scalable programming language, with robust libr ...
- Kubernetes资源创建yml语法
前言 在是用kubernetes中,我们对资源的创建大部分都是通过 1 kubelet create -f RESOURCE.yaml 刚开看的时候不免有一些迷茫,看不懂语法,不知道怎么写:今天本文就 ...
- 外观模式(Facade) Adapter及Proxy 设计模式之间的关系 flume
小结: 1. 外观模式/门面模式 Facade 往是多个类或其它程序单元,通过重新组合各类及程序单元,对外提供统一的接口/界面. Proxy(代理)注重在为Client-Subject提供一个访问的 ...
- 第15章—数据库连接池(DBCP2)
spring boot 系列学习记录:http://www.cnblogs.com/jinxiaohang/p/8111057.html 码云源码地址:https://gitee.com/jinxia ...
- Cisco路由器DHCP配置浅析
enable config terminal (进入配置模式) ip dhcp pool global(配置一个根地址池,global是地址池的名称,你可以采用有意义的字符串来表示) config ...