java 泛型接口_Java中泛型接口

一:泛型接口

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

DEMO:观察代码

6991e7ea6cff5a7d5c691aee62f45a77.png

2c67f0b783053ecc83d2d1ff02998257.png

4e47cee118f70e5b1f5a19230c9a5336.png

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

DEMO:操作雇员信息的接口

9ec3ac6f3fbd263caa376a55aba4334b.png

396835cd9c29ea11cd93767b5f0802bf.png

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

DEMO:定义泛型接口

235845609f0e345d45a3c07b86a5f021.png

e9df5891e73def1cbc01d954351bb10d.png

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

115ef040c90d12fc89e18373ad1bff63.png

eee206a445e7624e5e6b9f54576ee003.png

628a5ea77241f8d154fd47b184d2d081.png

e5ab6ba79e738acf5be3db171fb90e4e.png

70e93f837b59b3f97da90dfa51371cb1.png

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

3a184b2dbbfd3109c1ca99e49b5c7f9b.png

b6736a13cea761fbbccbf2712251a4c2.png

71af04d9776e46f4c95a094854110f07.png

f97d6455f53f7d97f9fe21464ab35f90.png

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

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

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

621c890053f86bf23b74b4cee636c7c5.png

916480d4631f13adae27aeb58125da97.png

fdb3418103383de27668a8e5c38de53c.png

e9808e7cb1c9447c7d68e233aada5cbd.png

总结:

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

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

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

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

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

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

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

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页