当前位置:首页 > Java

java如何使用泛型

2026-02-04 23:55:43Java

泛型的基本概念

泛型允许在定义类、接口或方法时使用类型参数,使用时指定具体类型。泛型提高了代码的可重用性和类型安全性,避免了强制类型转换。

泛型类

在类名后添加类型参数 <T>T 可以是任意标识符,通常用大写字母表示。

public class Box<T> {
    private T content;

    public void setContent(T content) {
        this.content = content;
    }

    public T getContent() {
        return content;
    }
}

使用示例:

Box<String> stringBox = new Box<>();
stringBox.setContent("Hello");
String value = stringBox.getContent(); // 无需强制类型转换

泛型方法

在方法返回类型前声明类型参数 <T>,泛型方法可以在非泛型类中定义。

java如何使用泛型

public <T> void printArray(T[] array) {
    for (T element : array) {
        System.out.println(element);
    }
}

使用示例:

Integer[] intArray = {1, 2, 3};
String[] strArray = {"A", "B", "C"};
printArray(intArray); // 自动推断类型为Integer
printArray(strArray); // 自动推断类型为String

泛型接口

接口也可以定义类型参数,实现类需指定具体类型或保持泛型。

public interface List<T> {
    void add(T element);
    T get(int index);
}

实现示例:

java如何使用泛型

public class StringList implements List<String> {
    private ArrayList<String> items = new ArrayList<>();

    @Override
    public void add(String element) {
        items.add(element);
    }

    @Override
    public String get(int index) {
        return items.get(index);
    }
}

类型通配符

使用 ? 表示未知类型,通常用于限制泛型的灵活性。

  • <?>:无限制通配符,匹配任何类型。
  • <? extends T>:上界通配符,表示类型为 T 或其子类。
  • <? super T>:下界通配符,表示类型为 T 或其父类。

示例:

public void processList(List<? extends Number> list) {
    for (Number num : list) {
        System.out.println(num);
    }
}

此方法接受 List<Integer>List<Double> 等参数,但不接受 List<String>

泛型限制

  • 不能使用基本类型(如 intdouble),必须用包装类(如 IntegerDouble)。
  • 不能直接实例化泛型类型数组(如 new T[10]),但可以通过反射或强制类型转换实现。
  • 静态上下文中不能使用类的类型参数(静态方法需独立声明泛型)。

实际应用场景

  • 集合框架(如 ArrayList<T>HashMap<K,V>)。
  • 工具类(如 Collections.sort() 的泛型方法)。
  • 避免重复代码,实现通用算法(如排序、比较)。

通过泛型,Java 代码在编译时即可捕获类型错误,减少运行时异常,同时增强代码可读性和维护性。

分享给朋友:

相关文章

react moment如何使用

react moment如何使用

安装 react-moment 通过 npm 或 yarn 安装 react-moment: npm install react-moment 或 yarn add react-moment…

java如何安装

java如何安装

安装Java的步骤 下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK项目页面下载适合操作系统的JDK版本。Oracle JDK适用于商业用途,OpenJDK是开源版本。选…

如何学习java

如何学习java

学习Java的步骤 理解基础知识 从Java的基本语法开始,包括变量、数据类型、运算符、控制流(if-else、循环)等。掌握这些基础概念是后续学习的基石。 学习面向对象编程(OOP) Java是一…

如何配置java环境

如何配置java环境

下载JDK安装包 访问Oracle官网或OpenJDK官网,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。下载完成后,运行安装程序并按照提示完成安装。 设置环境变量 右…

如何自学java

如何自学java

选择合适的学习资源 从官方文档开始,Oracle提供的Java官方教程(Java Tutorials)是权威且免费的学习资料。在线平台如Codecademy、Coursera或Udemy提供互动式课程…

java如何输出数组

java如何输出数组

输出数组的方法 在Java中,输出数组内容有多种方式,具体取决于数组类型和输出格式需求。以下是几种常见的方法: 使用Arrays.toString()方法 适用于一维数组,直接调用Arrays.t…