泛型是什么意思在这就不多说了,而Java中泛型类的定义也比较简单,例如:public class Test{}。这样就定义了一个泛型类Test,在实例化该类时,必须指明泛型T的具体类型,例如:Test t = new Test();,指明泛型T的类型为Object。

但是Java中的泛型方法就比较复杂了。

泛型类,是在实例化类的时候指明泛型的具体类型;泛型方法,是在调用方法的时候指明泛型的具体类型。

定义泛型方法语法格式如下:

调用泛型方法语法格式如下:

说明一下,定义泛型方法时,必须在返回值前边加一个,来声明这是一个泛型方法,持有一个泛型T,然后才可以用泛型T作为方法的返回值。

Class的作用就是指明泛型的具体类型,而Class类型的变量c,可以用来创建泛型类的对象。

为什么要用变量c来创建对象呢?既然是泛型方法,就代表着我们不知道具体的类型是什么,也不知道构造方法如何,因此没有办法去new一个对象,但可以利用变量c的newInstance方法去创建对象,也就是利用反射创建对象。

泛型方法要求的参数是Class类型,而Class.forName()方法的返回值也是Class,因此可以用Class.forName()作为参数。其中,forName()方法中的参数是何种类型,返回的Class就是何种类型。在本例中,forName()方法中传入的是User类的完整路径,因此返回的是Class类型的对象,因此调用泛型方法时,变量c的类型就是Class,因此泛型方法中的泛型T就被指明为User,因此变量obj的类型为User。

当然,泛型方法不是仅仅可以有一个参数Class,可以根据需要添加其他参数。

为什么要使用泛型方法呢?因为泛型类要在实例化的时候就指明类型,如果想换一种类型,不得不重新new一次,可能不够灵活;而泛型方法可以在调用的时候指明类型,更加灵活。

附:Java泛型方法演示代码。

本文转自http://www.cnblogs.com/iyangyuan/archive/2013/04/09/3011274.html 感谢作者

java的泛型方法_Java中的泛型方法相关推荐

  1. java mod %区别_Java中 % 与Math.floorMod() 区别详解

    %为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...

  2. java show过时_Java中show() 方法被那个方法代替了? java编程 显示类中信

    你说的show是swing里的吧,在老版本中Component这个超类确实有show这个方法,而且这个方法也相当有用,使一个窗口可见,并放到最前面.在jdk5.0中阻止了这个方法,普遍用setVisi ...

  3. java判断类型_Java中类型判断的几种方式 - 码农小胖哥 - 博客园

    1. 前言 在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式. 2. instanceof instanceof是Java的一个运算符,用来判断一个 ...

  4. java 序列化实例_Java中的序列化与反序列化实例

    创建的字节流与平台无关.因此,在一个平台上序列化的对象可以在另一个平台上反序列化. 为了使Java对象可序列化,我们实现java.io.Serializable可序列化接口. ObjectOutput ...

  5. java 数据类型分为_JAVA中分为基本数据类型及引用数据类型

    byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值 ...

  6. java 代码锁_Java中的Lock锁

    Lock锁介绍: 在java中可以使用 synchronized 来实现多线程下对象的同步访问,为了获得更加灵活使用场景.高效的性能,java还提供了Lock接口及其实现类ReentrantLock和 ...

  7. java wait 参数_java中wait()和join()方法的区别是什么

    java中wait()和join()方法的区别是:存在不同的java包中:wait()方法用于线程间通信,它所施加的等待状态的线程可以被启动:join()方法用于在多个线程之间添加排序,它所施加的等待 ...

  8. java thread join()_Java中Thread.join()的使用方法

    概要 本文分三个部分对thread.join()进行分析: 1. join() 的示例和作用 2. join() 源码分析 3. 对网上其他分析 join() 的文章提出疑问 1. join() 的示 ...

  9. java 锁定界面_Java中的锁

    java中的锁遵循不同的分类方法,太多了,乐观锁/悲观锁,可重入锁/不可重入锁,有些第一遇到的话,可能还有点懵.刚好周末有时间学习下,总结和梳理下. 一总述 总的来说对java的锁有以下七种分类方法: ...

  10. java final 函数_JAVA中Final的用法

    1.         修饰基础数据成员的final 这是final的主要用途,其含义相当于C/C++的const,即该成员被修饰为常量,意味着不可修改.如java.lang.Math类中的PI和E是f ...

最新文章

  1. “众声喧哗”中的VR,谁来买单?
  2. 获取某一目录之下所有文件的大小
  3. 【翻译】HTML5开发——轻量级JSON存储解决方案Lawnchair.js
  4. Selenium--调用js,对话框处理 (python)
  5. 每日一练:Python代码绘制航海王草帽路飞,打饭阿姨也能跟着学会的Turtle海龟绘图系列
  6. python中的代码复用与函数递归
  7. Bit-Z如何注册?【新手操作指南】
  8. HashTable和HashMap的区别(网上整理)
  9. 财务软件开发_财务独立对软件开发人员的重要性
  10. ASP.Net学习笔记002--ASP.Net服务端控件做了什么2
  11. 如何零基础入门产品经理
  12. Android开根号运算
  13. 第11.25节 Python正则表达式编译re.compile及正则对象使用
  14. dos下c语言读取扇区的函数,C语言编程读取主导扇区.doc
  15. Android查看手机sqlite数据库(可视化)
  16. Android卡顿优化
  17. NR PRACH(二)PRACH Format及频域位置
  18. 将闲置的Ipad作为Windows的副屏(Twomon SE)
  19. oracle用户sysman过期,sysman密码过期导致oem无法使用
  20. 推荐系统-简介_李孟_新浪博客

热门文章

  1. 通信感知一体化(ISAC)概述
  2. 云计算就业方向及前景怎么样
  3. 固态硬盘计算机怎么自定义分区,固态硬盘做系统分区教程-固态硬盘如何分区?...
  4. 怎么把python压缩_python中如何实现图片压缩
  5. 2021年全国省市区街道代码自动同步(包含解决方案)
  6. 麻辣香锅(Spicy Hot Pot)浏览器劫持病毒应急方法
  7. 广域网用什么软件可以更好地传输大文件和海量文件?
  8. dota 服务器 无响应,dota2卡死出现无响应蓝屏红字解决方法
  9. 程序人生 - 怡宝和农夫山泉有什么区别,哪个更好一些?
  10. 2021-03-12