一:泛型接口

先给大家普及一个概念(在后面的也会有),其实在以后的开发中我们开发一个项目最基本的目的是将数据库中的数据显示到客户端或者客户端可以将数据录入数据库实现数据的交互,那么数据库分为关系型数据库(比如mysql)和非关系型数据库(redis), 关系型数据库是由表组成的,一张数据表一.般保存一类信息,那么张数据表在Java中就对应一个简单Java类(vo类),而且我们会定义一个接口来规范操作这张数据表的实现类开发。

DEMO:观察代码

以上定义了一个操作部门数据的接口,如果要操作雇员信息的应该再为雇员定义一个接口

DEMO:操作雇员信息的接口

发现了以上的只有接口的名称以及每个方法的参数类型不- -样,方法的名称以及形式都是一样的,如果有一百张数据表就意味着要定义一百个这样的接口。此时就出现了代码重复的现象,最好的做法是使用一个接口实现多张数据表的数据操作。要实现这样的操作需要使用泛型接口。之前每个接口只能操作- -种类型的数据,现在使用泛型接口之后,把要操作的数据类型使用占位符标记,具体使用接口的时候再根据需求指定泛型的类型。

DEMO:定义泛型接口

DEMO:在实现类中指定泛型类型

DEMO:在实现类中继续使用泛型,之后再实例化实现类对象的时候才指定具体的占位符的类型

其实上在实现类的时候指定出具体的泛型就够了,以上的做法是为了给大家描述出泛型接口的使用另外的方式。

DEMO:在接口继承接口的时候指定出具体的泛型类型

以上我们直接使用实现类去实现IBaseDAO,其实上IBaseDAO接口是一个父接口( 公共的接口),那么如果实现类需要有自己特有的方法(还要扩充新的方法),那么还是离不开子接口,所以我们还要使用子接口去继承父接口(IBaseDAO)

总结:

1、在定义一个接口的时候如果某些类型不能确定,那么就使用占位符标记,在具体使用的时候再指定泛型的类型。

2、接口的泛型常用的使用方式:

直接在实现类中指定泛型的具体类型

在实现类中继续使用泛型,在实例化实现类对象的时候指定泛型的具体类型

在接口继承接口中指定泛型的具体类型。

有完整的Java初级,高级对应的学习路线和资料!专注于java开发。分享java基础、原理性知识、JavaWeb实战、spring全家桶、设计模式、分布式及面试资料、开源项目,助力开发者成长!

欢迎关注微信公众号:码邦主

java 泛型接口_Java中泛型接口相关推荐

  1. java 事务_Java中事务总结详解(精华)

    1.什么是JAVA事务? 通常的观念认为,事务仅与数据库相关. 事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(consistency).隔离性 (is ...

  2. [转载] c++多态与java多态性_Java中的多态性

    参考链接: Java中的加法和串联 c++多态与java多态性 Polymorphism is one of the core concepts of OOPS paradigm. The meani ...

  3. java 且_JAVA中逻辑运算符“|”和“”与“||”和“”的用法

    1.使用规则: (1)& 可以用作逻辑与的运算符,表示逻辑与(and) a.当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false ...

  4. java 包装类_Java中的包装类

    Java中哪些需要包装类 它们将原始数据类型转换为对象.如果我们希望修改传递给方法的参数,则需要对象(因为基元类型是按值传递的). java.util包中的类只处理对象,因此在这种情况下包装类也有帮助 ...

  5. java 难度_java中难度大一点的面试题

    1.请大概描述一下Vector和ArrayList的区别,Hashtable和HashMap的区别.(5) (1)Vector和ArrayList的异同 实现原理,功能相同,可以互用 主要区别: Ve ...

  6. math java 计算_Java中的数学计算函数汇总

    Math类:  java.lang.Math类中包含基本的数字操作,如指数.对数.平方根和三角函数. java.math是一个包,提供用于执行任意精度整数(BigInteger)算法和任意精度小数(B ...

  7. java中的多态性_[转载] c++多态与java多态性_Java中的多态性

    参考链接: Java中的加法和串联 c++多态与java多态性 Polymorphism is one of the core concepts of OOPS paradigm. The meani ...

  8. c++多态与java多态性_Java中的多态性

    c++多态与java多态性 Polymorphism is one of the core concepts of OOPS paradigm. The meaning of polymorphism ...

  9. java引_JAVA中的引用

    JDK1.2之后,Java扩充了引用的概念,将引用分为强引用.软引用.弱引用和虚引用四种. 强引用 类似于"Object a = new Object()"这类的引用,只要垃圾强引 ...

  10. java 程序计数器_Java中的程序计数器是什么

    程序计数器是当前线程正在执行的字节码的地址.程序计数器是线程隔离的,每一个线程在工作的时候都有一个独立的计数器. JAVA虚拟机管理的内存区域图 1.什么是程序计数器? 程序计数器是当前线程正在执行的 ...

最新文章

  1. 纯Shading Language绘制飞机火焰效果
  2. CodeForces Gym-101350M
  3. 使用接口改变已经装箱的值类型的字段
  4. MoeCTF 2021Re部分------ez(递归转循环)
  5. PA银行面试之炮灰之程
  6. Java多版本国际化_Java -- 国际化 多语化
  7. HDU 1159.Common Subsequence【动态规划DP】
  8. activiti mysql 版本_Mysql8.0.17版本不能自动创建activiti表的坑
  9. 如何控制油门更准确?
  10. 分析java程序的命令总结jps,jstack
  11. Valid Parentheses
  12. Modal中的确认和取消按钮
  13. 故障树分析法MATLAB,基于VC++与MATLAB的故障树分析系统
  14. word 插入目录及错误!未找到目录项
  15. Badboy内置浏览器,提示脚本错误解决方法
  16. 数值分析中MATLAB的应用
  17. 软件测试:黑盒测试、白盒测试和灰盒测试
  18. USB音频编解码芯片电路方案设计(原理图)|TYPEC音频方案|TYPEC扩展坞方案|USB音频方案
  19. CloudFlare Workers 设置使用自定义域名
  20. 基于OpenWrt的Wol(wake on lan)远程唤醒

热门文章

  1. 开源的仿真软件HOPSAN
  2. Keli Linux与网络安全(1)——在VMWare中安装Keli系统
  3. CC2530射频通信
  4. 【廖雪峰python教程学习】——(一)python基础
  5. 苹果个人开发者账号如何升级成公司账号
  6. 题-芭芭拉冲鸭~(续)(LCA最近公共祖先)
  7. 2021信息安全工程师考试汇总--1220更新考试结果
  8. 辽宁移动计算机类专业笔试题库,2019辽宁中国移动笔试行测模拟题(八)
  9. Java学习手册:Java基础知识点(不断扩充更新中)
  10. MIT算法圣经书《算法导论》第四版