Java中的泛型类和泛型方法区别和联系

泛型的概念大家应该都会,不懂的百度或者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一次,可能不够灵活;而泛型方法可以在调用的时候指明类型,更加灵活。

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

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



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 28
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值