泛型(泛型类、接口及方法)——学习推荐版,通俗易懂讲解
2023-12-19 23:32:06
    		泛型定义及分类

1.泛型类

类型变量其实就是一个标识符,一般用大写字母表示,如K,T,E,V,当然也可以多个字母或数字的组合,只要满足标识符的定义规则就都可以。
形式1

若写成MyArrayList<> list = new MyArrayList();那么对应public class MyArrayList<E>中的E类型就是Object类型
形式2

形式3

2.泛型接口

形式1

其他形式类型于自定义泛型类的形式2、形式3
3.泛型方法(其实就是方法的参数定义泛型)
其实就是在方法的参数前面定义泛型标识符,只不过这个标识符写在方法的返回值类型前面罢了,所以叫泛型方法。

形式1


分析下面这个问题

这里的话就是贴了一个标签,标签为Car,只能是ArrayList<Car>类型

如果定义成上图这样,虽可以传值,但不能保证是Car的子类,见下图

最终解决方法:

简化形式(推荐)

小知识:
-  ?是通配符,可以直接拿来使用,表示接收一切类型,不需T哪种自定义表示符,还需定义。 
-  A extends B:表示类型A必须为类型B或者为类型B的子类。 
-  A super B:表示类型A必须为类型B或者为类型B的父类。 
注意事项

示例1:

而且会将所约束的泛型进行强制类型转换,如上图的String rs = (String) list .get(2);
示例2:

    			文章来源:https://blog.csdn.net/qq_62614525/article/details/135072518
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
    	本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!