一、getGenericSuperclass()和getActualTypeArguments()基本使用方法:
import java.lang.reflect.ParameterizedType;
public class TT extendsTT2<Integer> {
public static void main(String[] args) {
System.out.println(((ParameterizedType) newTT().getClass()
.getGenericSuperclass()).getActualTypeArguments()[0]);
}
}
//output:classjava.lang.Integer
说明: getGenericSuperclass() 通过反射获取当前类表示的实体(类,接口,基本类型或void)的直接父类的Type。getActualTypeArguments()返回參数数组。
二、泛型 DAO 模拟
BaseDaoImpl类:
packagecom.mrlun.oa.test;
importjava.lang.reflect.ParameterizedType;
@SuppressWarnings("unchecked")
public classBaseDaoImpl<T> {
private Classclazz;
publicBaseDaoImpl() {
ParameterizedTypept = (ParameterizedType) this.getClass()
.getGenericSuperclass();
this.clazz =(Class) pt.getActualTypeArguments()[0];
System.out.println("Type为: " + clazz.getSimpleName());
}
public void save() {
System.out.println("Type为: " + clazz.getSimpleName());
}
}
UserDao类:
package com.mrlun.oa.test;
public class UserDao extendsBaseDaoImpl<Users>{
}

測试类:
package com.mrlun.oa.test;
public class Test{
public static void main(String[] args) {
UserDao userdao=new UserDao();
userdao.save();
}
}

//output:
Type为: Users(new子类时会调用父类的默认的构造方法)
Type为: Users

这时,我们就能够使用泛型来简化DAO的操作,省去了写N多有反复的方法的DAO的时间。

转载于:https://www.cnblogs.com/blfshiye/p/5084715.html

使用getGenericSuperclass()和getActualTypeArguments()将DAO做成泛型相关推荐

  1. 泛型DAO与泛型Service

    泛型Dao与Service 看了几个帖子,泛型Dao与Service的主要目的就是要减少重复代码.具体的说明如下: 1. 定义一个BaseDao接口,此接口包含了一些通用的DAO操作,例如:增加.删除 ...

  2. Java通过Class的对象来获取泛型的class示例

    转载自  Java通过Class的对象来获取泛型的class示例 在使用spring的JdbcTemplate实现DAO的时候,经常会用到一个类ParameterizedBeanPropertyRow ...

  3. java 支付类的接口,Java后端支付大杂烩之core.dao,service,web(重点是接口的设计)(二)...

    PayMap PayMap是一个使用Java语言集成三方支付的小Demo,现已集成支付宝(国内.国际.移动端.PC端).微信.银联(ACP.UPOP).光大(网关.网页).邮政支付,采用的技术栈为:S ...

  4. springboot泛型封装开发

    JDK1.5出来后,Java开始支持泛型开发,通过将父类声明为泛型,子类继承父类,子类就能拥有父类的方法,而不需要再写代码.泛型开发能使我们的代码开发提供了很大的简便,简化了我们的代码. 在sprin ...

  5. 泛型java 代码讲解_Java泛型详解

    2516326-5475e88a458a09e4.png 一,打破砂锅问到底 泛型存在的意义? 泛型类,泛型接口,泛型方法如何定义? 如何限定类型变量? 泛型中使用的约束和局限性有哪些? 泛型类型的继 ...

  6. java中的类如何选取,java里如何获取泛型的类型

    jdk1.5开始支持泛型,所以我们有时需要把泛型里定义的对象的类型拿到,研究了一下sample代码 可以这样来做 比如现在我定义了三个类Account, AccountItem和Product类. A ...

  7. java 泛型反射_Java使用反射来获取泛型信息示例

    本文实例讲述了Java使用反射来获取泛型信息.分享给大家供大家参考,具体如下: 一 点睛 获得了Field对象后,就可以很容易地获得该Field的数据类型,即使用如下代码即可获得指定Field的类型: ...

  8. java反射基本使用,反射泛型参数类型获取

    背景: 因为项目controller层入参Req 和service 层DTO 入参,是两个类.需要在controller层将api接收到的参数向下传递到service层,参数名基本都是一致的.但是有时 ...

  9. Java基础篇:JDBC核心技术

    文章目录 第1章:JDBC概述 1.1 数据的持久化 1.2 JDBC介绍 1.3 JDBC程序编写步骤 第2章:获取数据库连接 2.1 要素一:Driver接口实现类 2.1.1 Driver接口介 ...

最新文章

  1. 基于NB-IoT的智慧路灯监控系统(NB-IoT专栏—实战篇1:项目简介)
  2. C#合并两张表结构相同(列数和列类型都相同)的表
  3. 使用Zabbix自带MySQL模板监控MySQL
  4. 【正一专栏】故意豪宅纵火的保姆会判死刑吗?
  5. mongodb笔记(三)
  6. 西北大学计算机考试,西北大学计算机技术
  7. 英特尔助力完善AI人才培养,携手微软共促地球可持续发展
  8. 【OpenCV新手教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放...
  9. 北京大学生物信息学 (4)序列数据库
  10. 【转】J2SDK1.5+TOMCAT5.5 最详细有效安装及配置
  11. 在cmd中编译C语言方法
  12. 经济基础知识(中级)【8】
  13. 微服务下权限校验方案
  14. 安卓集成腾讯即时通信IM完成聊天室功能
  15. air dots 配对_Redmi AirDots可以作为iphone的合格伴侣吗?
  16. huipengly的2018年度总结
  17. 不怕水的电子书阅读器想要吗?亚马逊Kindle再出新品
  18. 一键打卡html,打卡页面.html
  19. ubuntu rsyslog mysql_Ubuntu下rsyslog集中收集mysql审计日志
  20. 通过ve模板实现一键在线视频制作

热门文章

  1. 《Python基础入门》
  2. 书讯:《架构实战—软件架构设计的过程》
  3. 企业应用超级App来啦!
  4. 滴滴CTO张博:过去的1095天 人工智能发展主要依赖3件事
  5. redis安装+启动和连接+让redis在后台运行
  6. StickyListHeaders的使用
  7. Android新建一个activty
  8. 排序序列排序算法总结(二)——快速排序、归并排序
  9. junit测试SSH基本环境
  10. another app is currently holding the yum lock;waiting for it to exit...