温馨提示×

温馨提示×

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

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

java泛型怎么写

发布时间:2026-10-21 11:13:49 来源:亿速云 阅读:99 作者:小樊 栏目:编程语言

在 Java 中,**泛型(Generics)**用于让类、接口、方法在定义时不指定具体类型,而是在使用时再指定,从而提高代码的复用性和类型安全。

下面从常见写法到示例给你系统讲一下。


一、泛型类

写法

class 类名<T> {
    T 变量;
}

示例

public 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("Hello");
String s = box.get();

二、泛型接口

写法

interface 接口名<T> {
    T method();
}

示例

public interface Converter<T> {
    T convert(String s);
}

实现

public class IntConverter implements Converter<Integer> {
    public Integer convert(String s) {
        return Integer.parseInt(s);
    }
}

三、泛型方法

写法

修饰符 <T> 返回类型 方法名(T 参数) {}

示例

public class Util {
    public static <T> T getFirst(T[] array) {
        return array[0];
    }
}

使用

String[] strs = {"a", "b"};
String first = Util.getFirst(strs);

四、多个泛型参数

class Pair<K, V> {
    private K key;
    private V value;
}

使用:

Pair<String, Integer> pair = new Pair<>();

五、泛型通配符(?)

1️⃣ 无限制通配符

List<?> list;

2️⃣ 上界通配符(? extends)

List<? extends Number> list;

✅ 可以读,不能写(除 null)

3️⃣ 下界通配符(? super)

List<? super Integer> list;

✅ 可以写 Integer,读出来是 Object


六、泛型限定(边界)

<T extends Number>

示例:

public <T extends Comparable<T>> T max(T a, T b) {
    return a.compareTo(b) > 0 ? a : b;
}

七、常见错误 ❌

List<Object> list = new List<String>(); // 错误

Java 泛型是不变的。


八、简单总结

场景 写法
泛型类 class A<T>
泛型接口 interface A<T>
泛型方法 <T> T method()
多泛型 <K, V>
上界 ? extends T
下界 ? super T

如果你愿意,我可以:

  • 用 通俗易懂的比喻讲泛型
  • 给你 真实项目中的泛型例子
  • 讲 泛型擦除(面试常问)

你想看哪一个?

向AI问一下细节

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

AI
助
手