当前位置:首页 > Java

java泛型如何使用

2026-04-09 08:01:43Java

泛型的基本概念

泛型(Generics)是Java 5引入的特性,允许在编译时检查类型安全,避免运行时类型转换错误。泛型可以应用于类、接口和方法,通过类型参数(如<T>)实现代码的通用性。

泛型类

泛型类在类名后添加类型参数,可以在类中作为字段、方法参数或返回值的类型。

public class Box<T> {
    private T content;

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

    public T getContent() {
        return content;
    }
}

使用示例

java泛型如何使用

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

泛型接口

泛型接口与泛型类类似,接口名后添加类型参数,实现类需指定具体类型或保留泛型。

public interface Pair<K, V> {
    K getKey();
    V getValue();
}

// 实现类指定具体类型
public class StringIntegerPair implements Pair<String, Integer> {
    @Override
    public String getKey() { return "key"; }

    @Override
    public Integer getValue() { return 1; }
}

泛型方法

泛型方法在方法返回类型前声明类型参数,独立于类的泛型参数。

java泛型如何使用

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

使用示例

Integer[] intArray = {1, 2, 3};
printArray(intArray); // 类型推断为Integer

类型通配符

用于处理未知类型的泛型,通过?表示:

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

示例

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

泛型限制

  1. 不能实例化泛型类型
    T obj = new T(); // 编译错误
  2. 不能用于静态变量:静态成员属于类,无法使用实例化的类型参数。
  3. 类型擦除:泛型信息在编译后被擦除,运行时无法获取具体类型。

实际应用场景

  • 集合框架:如ArrayList<String>确保类型安全。
  • 工具类:通用算法(如排序、比较)通过泛型实现复用。
  • 回调机制:如Comparator<T>接口支持多种类型比较。

通过泛型,Java实现了代码重用与类型安全的平衡,减少冗余代码和运行时错误。

分享给朋友:

相关文章

java如何实现异步

java如何实现异步

Java实现异步的方法 Java中实现异步编程可以通过多种方式,每种方式适用于不同的场景和需求。以下是常见的实现方法: 使用Thread类 创建新线程执行异步任务是最基础的方式。通过继承Thread…

java中如何获取当前时间

java中如何获取当前时间

获取当前时间的几种方法 使用 java.time 包(Java 8及以上推荐) import java.time.LocalDateTime; LocalDateTime currentTime =…

如何启用java

如何启用java

启用 Java 的方法 检查 Java 是否已安装 在命令行或终端输入 java -version,如果显示版本信息,说明 Java 已安装。若未安装,需从 Oracle 官网 或 OpenJDK 下…

java如何创建测试类

java如何创建测试类

创建测试类的基本步骤 在Java中创建测试类通常使用JUnit框架,以下是具体方法: 安装JUnit依赖 对于Maven项目,在pom.xml中添加依赖: <dependency>…

java如何入门

java如何入门

学习基础语法 从Java的基础语法开始,包括变量、数据类型、运算符、控制结构(if-else、for循环、while循环)等。可以通过官方文档或入门教程学习。 安装开发环境 下载并安装JDK(J…

如何用java编程

如何用java编程

Java编程基础指南 环境配置 安装Java开发工具包(JDK),推荐使用最新版本。配置环境变量,确保JAVA_HOME指向JDK安装路径,并将bin目录添加到系统PATH中。验证安装是否成功: j…