java再复习——自定义泛型类
来源:互联网 发布:ipower苹果软件下载 编辑:程序博客网 时间:2024/05/16 01:25
我们最先接触泛型是在哪里?我像大家都应该是这个:
List<String> list = new ArrayList<String>();
这样的话,这个链表就只能存放String类型的参数(不考虑通过反射绕过编译器存其他类型的参数这样的行为),以及取值等都是String。这就是一个泛型类,那么我们如何自定义我们的泛型类?(注意不要解决T能不能写出别的。比如说E了什么的。。确实是能写成E,不管是T,E都只是一个代替,随便)
* 我是Android * 曾经写数据库框架,或者封装别的数据库框架来使用时必须用 到这个 * 因为每一个实体类都有基本的增删改查的功能,而每一个实体类都对应一个Dao * 而如果没有这个泛型基类,那么每一个Dao都得写一次相同的增删改查代码,然后将实体类改为自身的 * 这样 很low * @author wrf * * @param <T> */public class BaseDao<T> {/** * 存 * @param list */public void add(List<T> list){}/** * 删 * @param id */public void delete(int id){}/** * 存或者修改 * @param t */public void update(T t){}/** * 查 * @param id * @return */public T findById(int id){return null;}}
有人可以会问,为什么要这样,自定义泛型方法就可以了,因为如果不这样的话,自定义泛型方法之间是无法相互约束的,也就是说虽然看起来都是T,但是根本没有关系,add方法我可以放String对象,findById方法返回来我可以用int接收,而这,显然是不对的。。如果用类泛型的话,类内的所有T都是类的泛型,都被约束了,这样才是一个开发正常需要的。
值得注意的是,如果是一个静态方法那么它不与类的泛型有任何关系,他认不得类泛型,它可以自己定义方法泛型,但是不与类有任何关联,很容易理解,因为类泛型是面向对象的,只有对象存在的时候才可以使用,而静态方法的执行不需要对象。
0 0
- java再复习——自定义泛型类
- java再复习——自定义泛型方法
- Java——复习
- java再复习——泛型
- java再复习——Collection体系
- java再复习——Map体系
- java再复习——异常总结
- java 复习——数据类型
- Java复习——类
- Java复习——作业
- java复习——变量
- Java复习——接口
- Java复习——多态性
- Java复习笔记—概述
- Java复习笔记—多线程
- Java复习笔记—泛型
- java再复习——面向对象(一)
- java再复习——面向对象(二)
- Fiddler的实践心得(六):显示请求服务器的IP地址(上)
- JavaScript高级程序设计[美]Nicholas C.Zakas著 读书笔记(三)
- Android Studio 安装过程及常见安装问题
- ubuntu 14.04安装 右键打开终端 open in terminal
- 有关jenkins发布服务器蛋疼的事情
- java再复习——自定义泛型类
- php之websocket服务使用(弹幕实现)
- 打你球球 App 发布啦
- webpack loader json 为什么require失败
- 团体程序设计天梯赛L2-007 家庭房产
- 转义字符列表
- Pigeon中的流量限制
- 软件工程7条基本原理
- Linux--多进程拷贝一个文件