在读java源代码的时候,我们经常会看到类似这样的定义:

// 摘自RestTemplate.java

public T getForObject(String url, Class responseType, Object... urlVariables) throws RestClientException

那么这个 T是什么含义呢?

第二个T很好理解,表示返回值类型;

而第一个的作用是声明这个方法是个泛型方法。

看javadoc的关于泛型方法的解释:

Generic methods are methods that introduce their own type parameters. This is similar to declaring a generic type, but the type parameter's scope is limited to the method where it is declared. Static and non-static generic methods are allowed, as well as generic class constructors.

大概含义是,泛型方法声明了本方法含有类型参数(比如T)。

有个好方法帮助理解,把这个去掉,会发生什么呢?

Paste_Image.png

会报找不到T的定义的错误!

原来,编译器并不会识别这个T是泛型类型的占位符,还可能有其他的类名也叫T(T并不是保留字,没人规定不可以)!

这个就会告诉编译器,现在声明T是一个范型类型的占位符,而不是其他东东(比如类名)!

现在是不是恍然大悟了呢?

再回想下我们平时经常写的带有泛型的类:

class Base {}

这里的, 作用也一样,声明T是个泛型类型的占位符。这么定义的类,叫做泛型类。

类比下c++关于模板的定义:

template< typename T>

void T get(T a);

java的这个就相当于template,只是理解起来没有那么直观~

java基础T什么意思_Java基础001:T T的含义相关推荐

  1. java增强型for报错_Java基础——增强for循环

    java1.5版本引入了一个增强for循环,基本原理和for循环类似. 语法声明:for(表达式:条件表达式) 举例:for (String str : set) 解释:set代表set集合,str代 ...

  2. java基础包的基本信息_JAVA 基础 之 基本数据类型、引用类型和包...

    java中数据类型有两类 基本数据类型 引用类型 基本数据类型 整数型 byte - 8bit short - 16bit int - 32bit long - 64bit [赋值时一般在数字后加上* ...

  3. java 继承与多态 习题_JAVA基础 第4章继承与多态_练习题_200910

    Java基础第4章练习题大外软件学院 第4章继承与多态 一.选择题 1. 编译和运行以下两文件结果是( D ). //文件P1.java package MyPackage; class P1{ vo ...

  4. java获取10位随机数_Java基础:JAVA中BitSet使用详解

    适用场景:整数,无重复: Bitset 基础 Bitset,也就是位图,由于可以用非常紧凑的格式来表示给定范围的连续数据而经常出现在各种算法设计中.上面的图来自c++库中bitset的一张图. 基本原 ...

  5. java继承原理内存角度_Java基础知识巩固

    最近发现自己的Java基础知识还是有点薄弱,刚好有点空闲时间进行再补一补,然后进行整理一下,方便自己以后复习.其实个人认为Java基础还是很重要的,不管从事Java后端开发还是Android开发,Ja ...

  6. java 的对象类用_java基础(第零篇)对象与类

    前言: 本文讲述java中对象与类的一些概念.包括对象与类的有关概念,类间五种关系,类的访问权限等. 在java中,一切都可以用对象来描述,操作对象的标识符只不过是对象的一个引用,一个对象可以有多个引 ...

  7. java返回特定下标元素_java基础--输出数组中指定元素的下标

    java基础--输出数组中指定元素的下标 java基础--输出数组中指定元素的下标 package com.lcn.day05; public class ArrayDemo8 { /** * 输出数 ...

  8. java基本数据类型的标识符_java基础(一)-标识符、变量、基本数据类型及转换、运算符及表达式...

    一.标识符 二.关键字 三.JAVA基础数据类型 3.1.常量 3.2.变量 从本质上来讲,变量其实是内存里面的一小块区域,一个程序在运行的时候,实际上这个程序是位于内存里面,然后才开始运行.一个.e ...

  9. java入门的注意点_Java基础之Integer使用的注意事项及面试题

    JAVA中Integer对象的引用 JAVA中没有指针一说,但也有引用的概念.这里要说的主要是Integer是不是同一个对象. 1.先看一段代码: public static void main(St ...

最新文章

  1. ffmpeg库编译加文字_使用ffmpeg库编译错误及解决办法
  2. 第一行代码学习笔记第二章——探究活动
  3. Arcgis for JS扩展GraphicLayer实现区域对象的聚类统计与展示
  4. 用new关键字对一个String 变量赋值和用literal值直接赋值有什么不同(转)
  5. phpcms_v9推送到其他栏目后再在其他栏目删除导致数据库出错
  6. 使用Nexus搭建私有Nuget仓库
  7. eNet 软件发布要求多多
  8. json_decode 打印 null
  9. 2019深圳杯数学建模比赛--初步思路
  10. VC++6.0 内存泄露调试
  11. afuwin64教程_华硕主板BIOS降级强刷教程
  12. 如何更好的使用谷歌搜索引擎
  13. 浅谈聚簇索引和非聚簇索引的区别
  14. android service开启前台通知
  15. FPGA工程师面试试题集锦41~50
  16. 微信小程序 自定义标题栏
  17. Android中通用配器的使用
  18. Win11如何录屏?压箱底的录屏工具分享给你
  19. 简单三步操作实现任意用户连接云服务器中的MYSQL数据库
  20. ThreadLocal一次性解决老大难问题

热门文章

  1. PHP在mysql中的数据转义问题
  2. webService 实战篇--客户端调用
  3. Discuz仿文明争霸游戏官网模版/Discuz游戏官网门户网站模板
  4. 大航海时代5服务器维护,《大航海时代5》停运公告
  5. web基础学习(六)CSS3 文字阴影、文本溢出、服务器字体
  6. 中鑫优配股票配资网站:11月10日周三早间市场信息
  7. ibm x201 怎么清理内部_联想 Thinkpad x201i怎么拆机清理风扇灰尘?_硬件教程
  8. Android系统手动创建虚拟内存swap
  9. 二重积分的对称性技巧
  10. i3 10100性能参数 i310100怎么样