泛型 <T>T 与 T 的区别
方法返回前的<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 的区别相关推荐
- 【Java】泛型中 extends 和 super 的区别?
<? extends T>和<? super T>是Java泛型中的"通配符(Wildcards)"和"边界(Bounds)"的概念. ...
- Java泛型中extends和super的区别?
区别 <? extends T>和<? super T>是Java泛型中的"通配符(Wildcards)"和"边界(Bounds)"的概 ...
- java super extend 区别_Java泛型中extends和super的区别
extends T>和 super T>是Java泛型中的"通配符(Wildcards)"和"边界(Bounds)"的概念. extends T&g ...
- Java中泛型的?和T的区别
前言: jdk5.0后java提供了泛型,用大写字母表示,一般用T,表示是一个不确定的具体的类型. ?表示是一群不确定的具体的类型,但?是它们的父类. 正文:?和T的区别 T:代表一种类型. ?:通配 ...
- java泛型中?和T有什么区别?
2019独角兽企业重金招聘Python工程师标准>>> public static void printColl(ArrayList<?> al){ ...
- java dog类型_java泛型中?和T有什么区别?
public static void printColl(ArrayList> al){ Iterator> it = al.iterator(); while(it.hasNext()) ...
- 泛型中extends和super的区别
extends 泛型中extends的主要作用是设定类型通配符的上限 要理解这句话,我们先从一个例子来看: class Fruit{public void call() {System.out.pri ...
- [转]JAVA泛型通配符T,E,K,V区别,T以及ClassT,Class?的区别
原文地址:https://www.jianshu.com/p/95f349258afb 1. 先解释下泛型概念 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被 ...
- 不正确 有三种形式 说法 通配泛型_一看就懂 详解JAVA泛型通配符T,E,K,V区别...
1. 先解释下泛型概念 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数.这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛 ...
- (转)JAVA泛型通配符T,E,K,V区别,T以及Class,Class的区别
1. 先解释下泛型概念 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数.这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛 ...
最新文章
- OpenCV 2.4.9-2.4.13各个版本附加依赖项Lib文件汇总
- CSS vs. JS Animation: 哪个更快
- 【刷算法】重建二叉树
- HTML中的全局属性
- Linux下创建软链接
- WebKit Frame对象分析
- 审计系统---堡垒机python下ssh的使用
- hadoop2.2.0 core-site.xml--security properties
- Python中的defaultdict方法
- mysql多类型查询_MYSQL中的多类型查询及高级查询操作
- MySQL多表关联查询与存储过程
- [kuangbin带你飞]专题九 连通图
- tensorflow学习之常用函数总结:tensorflow.cast()函数
- 华硕服务器主板型号命名规则,详细解读主板厂商命名规则——华硕篇
- 欢迎使用CS方分分分n编辑器
- jpi多表联查_MyBatis多表间级联查询
- 开源激光SLAM项目BLAM-----1
- 互联网大会8月13日召开 苏宁华为首次加盟
- Excel 科研作图
- iOS开发之Objective-C(中级篇)-李飞-专题视频课程
热门文章
- vue3 父组件获取数据传值给子组件,子组件有值,但是不渲染
- java中es检索and和or的使用_Elasticsearch查询中的OR和AND运算符
- U盘启动 BEINI 的方法
- mybatis分析-IncompleteElementException: Could not find result map
- 建立一个Map实例,k值为String类型,v值为Integer类型。依次用put方法输入如下: map.put(Kobe, 24); map.put(James, 6); map.put(
- 原来微信里有这么多好玩的3D小游戏了
- 计算机电源关机,电脑自动关机怎么解决
- vscode配latex环境
- 如何实践德鲁克的管理思想(转自MBAlib,Vture发表)
- 不限机型、不安装APP,一招解决垃圾短信和电话骚扰