一、定义泛型方法的格式

二、调用泛型方法的语法格式

三、解释

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

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

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

4、泛型方法不是仅仅可以有一个参数Class<T>,可以根据需要添加其他参数。

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

四、代码测试

public class Generic {/*** 泛型方法* @param <T> 声明一个泛型T* @param c 用来创建泛型对象* @return* @throws InstantiationException* @throws IllegalAccessException*/public <T> T getObject(Class<T> c) throws InstantiationException, IllegalAccessException{//创建泛型对象T t = c.newInstance();return t;}
}
public class User {private String uid;private String pwd;public String getUid() {return uid;}public void setUid(String uid) {this.uid = uid;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}}
public class GenericTest {public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException{Generic generic = new Generic();//调用泛型方法Object obj = generic.getObject(Class.forName("com.hyj.fx.User"));//判断obj的类型是否是指定的User类型System.out.println(obj instanceof User);}
}

【java】泛型方法的定义相关推荐

  1. Java泛型方法的定义

    一 点睛 泛型方法主要用于容器类,Java中任何方法,包括静态的(注意,泛型类不允许在静态环境中使用)和非静态的,均可以用泛型来定义,而且和所在类是否是泛型没有关系. 下面是泛型方法的定义 [publ ...

  2. 49天精通Java,第32天,Java泛型方法的定义和使用

  3. 【Java基础知识 11】java泛型方法的定义和使用

  4. 泛型方法的定义和使用_泛型( Generic )

    泛型(Generic) 1. 泛型概述 泛型是一个未知的, 不确定的数据类型. 比如ArrayList 中的E, 就是一个未知的不确定的数据类型, 那么他就是一个泛型 泛型虽然是一个未知的, 不确定的 ...

  5. java泛型方法 通配符_Java泛型教程–示例类,接口,方法,通配符等

    java泛型方法 通配符 泛型是Java编程的核心功能之一,它是Java 5中引入的.如果您使用的是Java Collections ,并且版本5或更高版本,则可以肯定使用了它. 将泛型与集合类一起使 ...

  6. Java 泛型详解(超详细的java泛型方法解析)

    Java 泛型详解(超详细的java泛型方法解析) 1. 什么是泛型 泛型:是一种把明确类型的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型.也就是说在泛型使用过程中,操作的数据类型被指定为 ...

  7. java 抽象泛型方法,Java泛型方法 - Only_小白的个人空间 - OSCHINA - 中文开源技术交流社区...

    Java泛型是java一个重要特性.这里介绍的是Java泛型方法:主要是用于,一般情况下,我们在类定义上做泛型的声明,这样在整个类内部都可以使用泛型,有些情况下,我们不需要整个类做泛型声明,只希望在某 ...

  8. Java泛型的定义和使用详解

    目录 一,为什么我们需要泛型 二,什么是泛型,泛型的定义 三,如何定义和使用泛型 四.限定类型变量 五.泛型中的约束和局限性 六.泛型类型的继承规则 七.通配符类型 八.虚拟机是如何实现泛型的? 一, ...

  9. java泛型方法作用_java泛型的作用与使用方法是什么?

    泛型,即"参数化类型".一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参.那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变 ...

  10. java设计模式中不属于创建型模式_23种设计模式第二篇:java工厂模式定义:工厂模式是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式...

    23种设计模式第二篇:java工厂模式 定义: 工厂模式是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 工厂模式主要是为创建对象提供过渡接口, ...

最新文章

  1. 面向可解释的NLP:北大、哈工大等提出文本分类的生成性解释框架
  2. java 无锁缓存_如何在高并发环境下设计出无锁的数据库操作(Java版本)
  3. 《Linux命令详解手册》——Linux畅销书作家又一力作
  4. Python的嵌套函数使用和闭包
  5. 2.9 学习率衰减-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  6. 100. Leetcode 377. 组合总和 Ⅳ (动态规划-完全背包)
  7. 【项目实战】基于python的申请评分卡模型
  8. 计算机网络的OSI七层模型
  9. 在spring中使用自定义注解注册监听器
  10. 本科毕设论文——基于Kinect的拖拉机防撞系统
  11. python数据库操作批量sql执行_利用Python如何批量修改数据库执行Sql文件
  12. java dateutils 今天_Java日期时间DateUtils工具包
  13. 体验火热的Python抢票神器,先让你50个加速包
  14. UG NX 12 取消选择对象
  15. 从零开始学JAVA:一、Java语言概述
  16. 交通流特征工程小技巧与思考
  17. carry on till tomorrow
  18. 58赶集基于 Docker 的自动化部署实践
  19. javaweb邮箱注册账号和激活
  20. Sqlmap中代理及其他常用参数

热门文章

  1. 【XSY3163】Tree Ext【二分】【最小生成树】【矩阵树定理】【拉格朗日插值】
  2. python+appium自动化测试遇到的一些坑及问题总结(一)
  3. Microsoft Defender防病毒扫描添加排除项
  4. vue文件上传速度慢,有可能是nginx配置的问题
  5. DIY树莓派小车(三)外壳设计和Web控制 完结
  6. 洛谷水题实况(P4971 断罪者)
  7. 使用频率最高的150韩语单词
  8. linux修改sftp umask,配置 bash 默认的 umask 更改 SFTP 上传文件的权限
  9. php 数组去除相同元素,php如何去除数组的重复元素
  10. 深度学习--卷积神经网络CNN