首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【零基础学java】(泛型)

【零基础学java】(泛型)

作者头像
北极的代码
发布2026-04-22 19:56:08
发布2026-04-22 19:56:08
680
举报
文章被收录于专栏:JavaSEJavaSE

前言:泛型是JDK5引入的特性可以在编译阶段约束操作的数据类型,并进行检查。

如果说,没有给集合限定类型的话,那么所有数据获取的都是object类,获取数据的时候不能使用子类的特有功能,有缺陷。此时推出了泛型,可以在添加数据的是时候就把类型进行统一。

泛型的格式:<数据类型>

注意:泛型只支持引用数据类型,如果不写泛型,类型默认是Object。

泛型类:

当一个类中,某个变量的数据类型不确定时,就可以定义带有泛型的类

泛型方法:

当方法中形参类型不确定时

泛型接口

具体实例

注意:

如果直接 System.out.println(list2),打印的确实是对象的内存地址,而不是内容。

这是因为默认的 toString() 方法返回的是类名@哈希码。必须重写 toString() 方法才能打印出想要的内容。

为什么 Java 集合可以直接打印?

因为 Java 集合框架的所有类都重写了 toString() 方法

查看 ArrayList 的 toString() 源码

自定义集合类如何实现同样的效果?

如果您想让自己写的集合类也能像 ArrayList 一样直接打印,必须重写 toString()

泛型不具备继承性,但是数据具备继承性

利用泛型方法有一个弊端,此时他可以接受任意的数据类型,即使是不在继承结构中的类。 public static <E>void method(ArrayList<E>list){}

泛型的通配符

区分

如果我们在定义类,方法,接口的时候,如果类型不确定,就可以定义泛型类,泛型方法,泛型接口。 如果类型不确定,但是能知道以后只能传递某个继承体系中,就可以用泛型的通配符(可以限定类型的范围)(例如:方法虽然不确定类型,但我希望只传递继承结构时)

1.  ? extends E 可以传递E,或E所有的子类类型 public static void method(ArrayList<? extends Ye> list){}

2.  ? super E 或E所有的父类类型

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-04-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 泛型类:
  • 泛型方法:
  • 泛型接口
  • 泛型不具备继承性,但是数据具备继承性
  • 泛型的通配符
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档