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的用法的更多相关文章

  1. Java泛型总结---基本用法,类型限定,通配符,类型擦除

    一.基本概念和用法 在Java语言处于还没有出现泛型的版本时,只能通过Object是所有类型的父类和类型强制转换两个特点的配合来实现类型泛化.例如在哈希表的存取中,JDK1.5之前使用HashMap的 ...

  2. Java 泛型 四 基本用法与类型擦除

    简介 Java 在 1.5 引入了泛型机制,泛型本质是参数化类型,也就是说变量的类型是一个参数,在使用时再指定为具体类型.泛型可以用于类.接口.方法,通过使用泛型可以使代码更简单.安全.然而 Java ...

  3. Java泛型用法总结

    普通泛型 class Point< T>{ // 此处可以随便写标识符号,T是type的简称 private T var ; // var的类型由T指定,即:由外部指定 public T ...

  4. JAVA 泛型 通配符? extends super限定,实例区分extends super限定的作用用法

    java泛型中的关键字 ? 表示通配符类型 <? extends T> 既然是extends,就是表示泛型参数类型的上界,说明参数的类型应该是T或者T的子类. <? super T& ...

  5. 关于Java泛型实现原理的思考与一般用法示例总结

    面向对象的一个重要目标是对代码重用的支持.支持这个目标的一个重要机制就是泛型机制.在1.5版本之前,java并没有直接支持泛型实现,泛型编程的实现时通过使用继承的一些基本概念来完成的. 这种方式的局限 ...

  6. 浅析Java 泛型

    泛型是JavaSE5引入的一个新概念,但是这个概念在编程语言中却是很普遍的一个概念.下面,根据以下内容,我们总结下在Java中使用泛型. 泛型使用的意义 什么是泛型 泛型类 泛型方法 泛型接口 泛型擦 ...

  7. Java:泛型基础

    泛型 引入泛型 传统编写的限制: 在Java中一般的类和方法,只能使用具体的类型,要么是基本数据类型,要么是自定义类型.如果要编写可以应用于多种类型的代码,这种刻板的限制就会束缚很多! 解决这种限制的 ...

  8. java泛型基础

    泛型是Java SE 1.5的新特性, 泛型的本质是参数化类型, 也就是说所操作的数据类型被指定为一个参数. 这种参数类型可以用在类.接口和方法的创建中, 分别称为泛型类.泛型接口.泛型方法.  Ja ...

  9. Java深度历险(五)——Java泛型

      作者 成富 发布于 2011年3月3日 | 注意:QCon全球软件开发大会(北京)2016年4月21-23日,了解更多详情!17 讨论 分享到:微博微信FacebookTwitter有道云笔记邮件 ...

随机推荐

  1. JavaScript------Throw和Try-Catch的使用

    function test() { try { var x = document.getElementById("demo").value; if (x == "&quo ...

  2. python 的时间复杂度

    Python内置方法的时间复杂度 本文翻译自Python Wiki 本文基于GPL v2协议,转载请保留此协议. 本页面涵盖了Python中若干方法的时间复杂度(或者叫“大欧”,“Big O”).该时 ...

  3. mysql通过拷贝文件实现数据快速迁移实例

    最近在做监控DB的迁移,由于数据量非常大,采用直接拷贝从机数据目录的方式,操作过程有几个注意事项,记录下来,以备后用: 操作步骤: 1.停掉从机的SQL线程,并将 innodb_max_dirty_p ...

  4. 提高SDN控制器拓扑发现性能

    原文由我发表在sdnlab.com.原文链接:http://www.sdnlab.com/15425.html SDN网络的一大特点就是资源由控制器集中管理,控制器管理网络,最基本的当然需要知道网络的 ...

  5. .Net framework 的浏览器定义文件

    .net framework4.5.1之前的版本有一个非常愚蠢的设定, 它为每个浏览器设置了一个浏览器定义文件, 通过正则表达式来匹配浏览器的userAgent, 然后来定义一些功能集. 这种做法有一 ...

  6. CommonJS和AMD/CMD

    JS中的模块规范(CommonJS,AMD,CMD) 一,CommonJS NodeJS是CommonJS规范的实现,webpack也是以CommonJS的形式来书写. 在浏览器环境下,没有模块也不是 ...

  7. 【BZOJ3522】[Poi2014]Hotel 树形DP

    [BZOJ3522][Poi2014]Hotel Description 有一个树形结构的宾馆,n个房间,n-1条无向边,每条边的长度相同,任意两个房间可以相互到达.吉丽要给他的三个妹子各开(一个)房 ...

  8. quartz定时任务配置

    参考:http://www.cnblogs.com/kay/archive/2007/11/02/947372.html Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quar ...

  9. ES6学习之Babel的正确安装姿势

    开始学习ES6,写点东西放上博客^_^ 本文介绍Babel6.x的安装过程~ 首先呢,可以使用Babel在线转换 https://babeljs.io/repl/ 然后进入主题:安装Babel(命令行 ...

  10. eslint Rules

    Rules 为了让你对规则有个更好的理解,ESLint 对其进行了分门别类. 所有的规则默认都是禁用的.在配置文件中,使用 "extends": "eslint:reco ...