泛型的概念大家应该都会,不懂的百度或者google,在java中泛型类的定义较为简单

<span style="font-size:18px;"><span style="font-size:18px;">public abstract class BaseEaoImpl<T> implements BaseEao<T>{}</span></span>

这样就定义了一个泛型类,在实例化这个类的时候,必须指明泛型T的具体类型(比例为Buttons实体),例如

<span style="font-size:18px;"><span style="font-size:18px;">public class ButtonBeanImpl extends BaseBeanImpl<Buttons> implements ButtonBean{}</span></span>

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

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

<span style="font-size:18px;"><span style="font-size:18px;">	@Override
public <T> PageModel queryPageModelByLikeAndEqual(Class<T> entityClass,
LinkedHashMap<Object, Object> equalFields,
LinkedHashMap<String, String> likeFields,
LinkedHashMap<String, String> orderByFields, PageModel<T> pageModel) {
return this.queryPageModel(entityClass, equalFields, null, likeFields, null,
orderByFields, null, pageModel);
}</span></span>

泛型类的调用

<span style="font-size:18px;"><span style="font-size:18px;">@Override
public PageModel<College> queryCollege(LinkedHashMap<Object, Object> equalFields,
LinkedHashMap<String, String> likeFields,PageModel<College> pageModel) {
// 初始化Equal查询条件承载体
LinkedHashMap<String, String> orderByFields =new LinkedHashMap<String, String>();
orderByFields.put("name", "DESC");
return commonEao.queryPageModelByLikeAndEqual(College.class, equalFields, likeFields, orderByFields, pageModel);
}</span></span>

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

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

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

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

为什么使用泛型类呢?使用泛型类可以解决重复业务的代码的复用问题,也就是业务颗粒的复用,同时使用泛型

类型在编译阶段就可以确定,并发现错误,类型的转换都是自动和隐士的,提高了代码的准确率和复用率。

最新文章

  1. Yii MySQL修改数据库的数据
  2. 将text 文件转为List
  3. Java开发环境的搭建
  4. 打饭助手之NABC
  5. StackOverflowError 和 OutOfMemoryError
  6. 【技术贴】Maven打包文件增加时间后缀
  7. BMP文件结构
  8. Android使用 startActivityForResult 、 onActivityResult 时的注意事项
  9. Java中eclipse中添加源码依赖
  10. Open-Falcon第六步安装Dashboard(小米开源互联网企业级监控系统)
  11. 玩转PHP中的正则表达式
  12. mysql-笔记-numberic 方法 操作符
  13. 【强大精美的PS特效滤镜合集】Alien Skin Eye Candy for Mac 7.2.2.20
  14. MFC不可不会
  15. linux系统搜索文件中关键字的位置
  16. GreenDao-自定义SQL查询-AndroidStudio
  17. Windows和linux下clock函数
  18. JS实现拖动(2)
  19. Windows下搭建Subversion 服务器
  20. webuploader 文件上传插件 IE8/9 文件选择不上传

热门文章

  1. [LeetCode] Contain Virus 包含病毒
  2. [LeetCode] Longest Uncommon Subsequence I 最长非共同子序列之一
  3. 将 Net 项目升级 Core项目经验:(三)迁移后的Net Standard版本的类库测试和多平台项目实测
  4. PHPCMS某处设计缺陷可致authkey泄露
  5. 教你从手机中提取system镜像制作线刷救砖包的简单方法
  6. 【USACO】干草金字塔
  7. 【HNOI2016】序列 莫队+单调栈+RMQ
  8. hdu 5643 BestCoder Round #75
  9. bzoj2338[HNOI2011]数矩形 计算几何
  10. bzoj1499[NOI2005]瑰丽华尔兹 单调队列优化dp