深入泛型2

1、

应用泛型分两类:

直接用:List<String> s = new ArrayList<String>();

扩展应用:

这样一来,UserDao具备了BaseDao的所有方法,并且这些方法中带泛型约束类的地方全部变成了User,使用的时候,UserDao那里不必再加泛形:


。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

以上是接口的继承应用,下面是接口扩展定义中的泛型

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

如果采取接口扩展泛型,类似于List<E>扩展Collection<E>:


那么实现类也变成:


两种方式也没有本质区别,只是泛型约束类使用前后不同。

但是第二种用到userdao实现类的时候要这样写:

UserDao<User>  userDao = new UserDaoImpl();

或者:UserDaoImpl   userDao = new UserDaoImpl();

而且可以发现:这里用UserDaoImpl没有泛型,是因为其定义的时候就没加而是直接继承和实现的:

BasicDaoImpl<User>    UserDao<User>

原则是本类定义时候加泛型,用的时候就得加泛型。

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。




javaAPI的应用中有:泛型应用在接口扩展定义:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,803评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,099评论 19 139
  • 你在哭,你在笑,你在沉默。哪一个是真的你?这些是否都来自你内心深处?是否是一种宣泄?我想应该不全是的,或多或少,我...
    行走看世界Hey阅读 188评论 1 1
  • 我妈妈退休后开了家饭店。我妈妈从事水上工作二十五年,所以五十不到就退了,那时候她仍然精力旺盛,想实现一下人生的价值...
    DinoF阅读 593评论 0 1
  • 鸡肋功能产生的常见原因无非是以下几点: 1. 产品早期探索,多功能点尝试,而后未做删减。 2. 产品数据平淡,追加...
    huiter阅读 305评论 0 1