Java中的泛型类和泛型方法区别和联系
来源:互联网 发布:arcgis js v44 api 编辑:程序博客网 时间:2024/05/22 09:40
泛型的概念大家应该都会,不懂的百度或者google,在java中泛型类的定义较为简单
泛型类的调用
说明一下,定义泛型方法时,必须在返回值前边加一个<T>,来声明这是一个泛型方法,持有一个泛型T,然后才可以用泛型T作为方法的返回值。
<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;">@Overridepublic <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;">@Overridepublic 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 0
- Java中的泛型类和泛型方法区别和联系
- java中Random类和Math类中的random方法的联系和区别
- JavaScript中的splice方法和slice方法联系与区别
- java中的TreeMap和HashMap的区别和联系:
- java的equals和hashcode方法的区别和联系
- servlet中的service, doGet, doPost方法的区别和联系
- Java中的抽象类和接口的区别与联系
- Java中的抽象类和接口的区别与联系
- java中的Date、Calendar的区别和联系
- java中的抽象类和接口区别于联系
- java中的session和cookies区别与联系
- Java中的接口和抽象类的区别联系
- Java集合区别和联系
- java中&和&&的区别和联系
- Java中&和&&的区别和联系
- java中&和&&的区别和联系
- java Vector 和ArrayList 区别和联系
- Android和Java的区别和联系
- 你知道回不去。青春已是一场回忆。
- java原型模式
- Java使用中菜鸟常犯的一些错误记录
- 定义符号常量#define
- Launching New_configuration error
- Java中的泛型类和泛型方法区别和联系
- 初始化progressDialog出错:unable to add view--- token null is not for an application
- 数字游戏 (vijos 1218)
- java位运算符
- 100以内的素数(又称之为质数)之和
- 从github上下载项目
- Servelet注意
- 简单说说ListView
- slf4j + logback