首页 > Java > java教程 > 正文

如何在Java中定义和使用泛型类

P粉602998670
发布: 2025-10-30 12:21:35
原创
175人浏览过
泛型类通过类型参数(如T)实现类型安全和代码复用,例如Box<T>可指定存储类型,编译器在实例化时进行类型检查,避免运行时错误;支持多参数如Pair<K,V>,并可用extends限定上界确保类型约束,提升灵活性与安全性。

如何在java中定义和使用泛型类

在Java中,泛型类允许你编写可以处理多种数据类型的类,同时保持类型安全。通过使用泛型,你可以避免运行时的类型转换错误,并提升代码的可重用性。

定义泛型类

定义一个泛型类时,在类名后添加类型参数,通常用尖括号⟨T⟩包围。这里的T代表“Type”,也可以使用其他字母如EKV等。

例如,定义一个简单的泛型容器类:

public class Box<T> {
    private T value;

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

    public T get() {
        return value;
    }
}

这里Box<T>表示这个类可以存储任何类型的对象,具体类型在创建实例时指定。

立即学习Java免费学习笔记(深入)”;

使用泛型类

创建泛型类的实例时,需要指定具体的类型。编译器会根据你传入的类型自动进行类型检查。

示例:创建一个只存储字符串的盒子

Box<String> stringBox = new Box<>();
stringBox.set("Hello World");
String content = stringBox.get(); // 无需强制转换

如果你尝试放入非字符串类型:

stringBox.set(123); // 编译错误

这会在编译阶段就被发现,避免了运行时错误。

百度文心百中
百度文心百中

百度大模型语义搜索体验中心

百度文心百中22
查看详情 百度文心百中

使用多个类型参数

泛型类可以支持多个类型参数。比如定义一个键值对容器:

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

    public Pair(K key, V value) {
        this.key = key;
        this.value = value;
    }

    public K getKey() { return key; }
    public V getValue() { return value; }
}

使用方式:

Pair<String, Integer> pair = new Pair<>("age", 25);
System.out.println(pair.getKey() + ": " + pair.getValue());

限定类型参数

有时你希望泛型类只能接受特定类型的子类。可以通过extends关键字设置上界。

例如,只允许数字类型(Number的子类):

public class NumberBox<T extends Number> {
    private T number;

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

    public double getDoubleValue() {
        return number.doubleValue();
    }
}

这样就只能传入IntegerDoubleNumber的子类:

NumberBox<Integer> intBox = new NumberBox<>();
intBox.set(100);
System.out.println(intBox.getDoubleValue()); // 输出 100.0

但传入String会报错:

NumberBox<String> strBox = new NumberBox<>(); // 编译错误!

基本上就这些。泛型类让Java代码更灵活、更安全。只要在定义时明确类型参数,使用时就能享受自动类型检查和无需强转的便利。

以上就是如何在Java中定义和使用泛型类的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号