方法返回前的<T> 是告诉编译器,当前方法的值传入类型可以和类初始化的泛型类型不同,也是就是该方法的泛型类可以自定义,不需要跟类初始化的泛型类相同.
package com.jt.test;import java.util.ArrayList;
import java.util.List;/*** @Description* 有的方法返回值为 <T> T ,有的方法返回值为 T ,区别在那里 ?**/
public class Request<E> {public <T> T getObject(Class<T> tClass) throws IllegalAccessException, InstantiationException {T t = tClass.newInstance();return t;}/*** 方法返回前的 <T> 是告诉编译器,当前方法的值传入类型可以和类初始化的泛型类型不同,* 也是就是该方法的泛型类可以自定义,不需要跟类初始化的泛型类相同** 参数 T*  第一个 表示是泛型*  第二个 表示是返回是T类型的数据*  第三个 表示限制参数类型为T* @param data* @param <T>* @return*/private <T> T getListFirst(List<T> data) {if (data == null || data.size() == 0) {return null;}return data.get(0);}/*** 这个只能传T类型的数据* @param data* @return*/private E getListFirst2(List<E> data) {if (data == null || data.size() == 0) {return null;}return data.get(0);}public static void main(String[] args) {List<Integer> data = new ArrayList<>();List<String> data2 = new ArrayList<>();// 入参由List<T>的T 决定,因为返回值为<T> T ,所以入参不受 Request<T> 影响Integer a = new Request<String>().getListFirst(data);// 编译出错,入参由Request<T> T的决定,受Request<T>影响//new Request<String>().getListFirst2(data);// 没什么区别String aa = new Request<String>().getListFirst(data2);String bb = new Request<String>().getListFirst2(data2);}}

泛型 <T>T 与 T 的区别相关推荐

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

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

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

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

  3. java super extend 区别_Java泛型中extends和super的区别

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

  4. Java中泛型的?和T的区别

    前言: jdk5.0后java提供了泛型,用大写字母表示,一般用T,表示是一个不确定的具体的类型. ?表示是一群不确定的具体的类型,但?是它们的父类. 正文:?和T的区别 T:代表一种类型. ?:通配 ...

  5. java泛型中?和T有什么区别?

    2019独角兽企业重金招聘Python工程师标准>>> public static void printColl(ArrayList<?> al){           ...

  6. java dog类型_java泛型中?和T有什么区别?

    public static void printColl(ArrayList> al){ Iterator> it = al.iterator(); while(it.hasNext()) ...

  7. 泛型中extends和super的区别

    extends 泛型中extends的主要作用是设定类型通配符的上限 要理解这句话,我们先从一个例子来看: class Fruit{public void call() {System.out.pri ...

  8. [转]JAVA泛型通配符T,E,K,V区别,T以及ClassT,Class?的区别

    原文地址:https://www.jianshu.com/p/95f349258afb 1. 先解释下泛型概念 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被 ...

  9. 不正确 有三种形式 说法 通配泛型_一看就懂 详解JAVA泛型通配符T,E,K,V区别...

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

  10. (转)JAVA泛型通配符T,E,K,V区别,T以及Class,Class的区别

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

最新文章

  1. OpenCV 2.4.9-2.4.13各个版本附加依赖项Lib文件汇总
  2. CSS vs. JS Animation: 哪个更快
  3. 【刷算法】重建二叉树
  4. HTML中的全局属性
  5. Linux下创建软链接
  6. WebKit Frame对象分析
  7. 审计系统---堡垒机python下ssh的使用
  8. hadoop2.2.0 core-site.xml--security properties
  9. Python中的defaultdict方法
  10. mysql多类型查询_MYSQL中的多类型查询及高级查询操作
  11. MySQL多表关联查询与存储过程
  12. [kuangbin带你飞]专题九 连通图
  13. tensorflow学习之常用函数总结:tensorflow.cast()函数
  14. 华硕服务器主板型号命名规则,详细解读主板厂商命名规则——华硕篇
  15. 欢迎使用CS方分分分n编辑器
  16. jpi多表联查_MyBatis多表间级联查询
  17. 开源激光SLAM项目BLAM-----1
  18. 互联网大会8月13日召开 苏宁华为首次加盟
  19. Excel 科研作图
  20. iOS开发之Objective-C(中级篇)-李飞-专题视频课程

热门文章

  1. vue3 父组件获取数据传值给子组件,子组件有值,但是不渲染
  2. java中es检索and和or的使用_Elasticsearch查询中的OR和AND运算符
  3. U盘启动 BEINI 的方法
  4. mybatis分析-IncompleteElementException: Could not find result map
  5. 建立一个Map实例,k值为String类型,v值为Integer类型。依次用put方法输入如下: map.put(Kobe, 24); map.put(James, 6); map.put(
  6. 原来微信里有这么多好玩的3D小游戏了
  7. 计算机电源关机,电脑自动关机怎么解决
  8. vscode配latex环境
  9. 如何实践德鲁克的管理思想(转自MBAlib,Vture发表)
  10. 不限机型、不安装APP,一招解决垃圾短信和电话骚扰