温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

新手怎么学java泛型

发布时间:2026-09-30 18:17:36 来源:亿速云 阅读:91 作者:小樊 栏目:编程语言

Java 泛型(Generics)是 Java 5 引入的重要特性,对新手来说确实容易“看不懂”,但只要循序渐进,并不难。下面我用新手友好的方式带你学。


一、为什么要学泛型?(先懂“为什么”)

没有泛型时的问题:

List list = new ArrayList();
list.add("hello");
list.add(123);

String s = (String) list.get(1); // 运行时报错!
  • 存什么都能放
  • 取的时候容易 类型转换出错

有了泛型:

List<String> list = new ArrayList<>();
list.add("hello");
// list.add(123); // 编译报错

✅ 编译期就能发现错误
✅ 不用强转
✅ 代码更安全、更清晰


二、泛型最基本的写法(从集合开始)

1️⃣ 泛型类

class Box<T> {
    private T value;

    public void set(T value) {
        this.value = value;
    }

    public T get() {
        return value;
    }
}

使用:

Box<String> box = new Box<>();
box.set("Java");
String s = box.get();

T 是“类型参数”,用的时候再指定


2️⃣ 泛型方法

public <T> void print(T t) {
    System.out.println(t);
}

调用:

print("hello");
print(123);

三、通配符(新手最容易晕的地方)

1️⃣ ? 无界通配符

List<?> list;

表示:不知道是什么类型,但一定是某种类型


2️⃣ ? extends T(上界)

List<? extends Number> list;

✅ 可以读
❌ 不能写(除了 null)

适合:只读场景


3️⃣ ? super T(下界)

List<? super Integer> list;

✅ 可以写 Integer
❌ 读出来是 Object

适合:只写场景


四、新手常见误区 ❗

❌ 泛型不能用于基本类型

List<int> list; // 错
List<Integer> list; // 对

❌ 运行时泛型会被“擦除”

List<String> 和 List<Integer>

运行时都是 List


五、新手学习路线建议 ✅

第一步:先用

  • List<String>
  • Map<String, Integer>

第二步:写简单泛型类

  • Box、Container

第三步:理解通配符

  • extends / super

第四步:看源码

  • ArrayList
  • HashMap

六、一句总结(记住这个)

泛型 = 把“类型”当参数,让代码更安全、更通用

如果你愿意,我可以:

  • 用 图解方式讲通配符
  • 给你 练习题
  • 或从 ArrayList 源码讲泛型

你想从哪一步开始?

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手