Java 泛型:不型变、协变、逆变

1、Why?为什么需要泛型?

根本目的是在保证泛型类 类型安全的基础上,提高API的灵活性

2、How?如何保证类型安全?

手段是通过编译器限制泛型类上某些方法的调用,编译器并没有那么聪明,一切取决于方法的签名

Java中的泛型类在正常使用时是不型变的,要想型变必须在使用处通过通配符进行(称为使用处型变)

3、Show?me the code

extend通配符
super通配符

附:测试代码中,需要用到的类。

class MyString extends Object {

}

class MySubString extends MyString {

}

class MySubsubString extends MySubString {

}

参考://www.greatytc.com/p/0c2948f7e656

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

推荐阅读更多精彩内容

  • 前言 泛型(Generics)的型变是Java中比较难以理解和使用的部分,“神秘”的通配符,让我看了几遍《Java...
    珞泽珈群阅读 12,396评论 12 51
  • object 变量可指向任何类的实例,这让你能够创建可对任何数据类型进程处理的类。然而,这种方法存在几个严重的问题...
    CarlDonitz阅读 4,440评论 0 5
  • 开发人员在使用泛型的时候,很容易根据自己的直觉而犯一些错误。比如一个方法如果接收List作为形式参数,那么如果尝试...
    时待吾阅读 4,681评论 0 3
  • 狮山星巴克一杯大杯的冰咖啡39元,里面挺多人,很热闹。用途范围可以聊天,谈公事,喝东西,上网,等人,玩手机或者游戏...
    帅气一点半阅读 952评论 0 0
  • 昨天起床后,刘畅老师需要去准备下午上课的材料,我就在餐厅陪孩子们喝水。于是有幸听到那么一撮儿提倡“自由恋爱”的“进...
    yizhi麻雀阅读 1,904评论 0 0