当前位置:首页 > Java

java如何实现泛型

2026-03-04 08:30:47Java

泛型的基本概念

Java泛型允许在类、接口或方法中使用类型参数,提高代码复用性和类型安全性。泛型在编译时进行类型检查,运行时擦除类型信息。

泛型类的实现

定义一个泛型类时,在类名后添加类型参数(如<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(); // 无需强制转换

泛型方法的实现

泛型方法在方法返回类型前声明类型参数:

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

调用时类型可显式指定或由编译器推断:

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

类型通配符与边界

  • 通配符?:用于接受未知类型,如List<?>
  • 上界通配符<? extends T>:限制类型为T或其子类。
  • 下界通配符<? super T>:限制类型为T或其父类。

示例:

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

泛型接口

接口同样可以定义泛型:

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

实现时需指定具体类型或保留泛型:

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

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

    @Override
    public K getKey() { return key; }

    @Override
    public V getValue() { return value; }
}

类型擦除与限制

Java泛型通过类型擦除实现,运行时类型参数会被替换为Object或其上界。因此:

  • 不能实例化泛型类型:new T()是非法的。
  • 不能创建泛型数组:T[] array = new T[10];会报错。
  • 静态成员不能使用泛型类型参数。

实际应用示例

结合集合框架使用泛型:

List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
String first = names.get(0); // 直接获取String类型

通过泛型,Java实现了类型安全的集合操作和灵活的代码设计。

java如何实现泛型

分享给朋友:

相关文章

如何实现vue表格联动

如何实现vue表格联动

实现 Vue 表格联动的方法 数据绑定与响应式更新 通过 Vue 的响应式特性,将多个表格的数据绑定到同一个数据源或计算属性。当一个表格的数据发生变化时,另一个表格会自动更新。例如: data()…

java如何

java如何

Java 基础语法 Java 是一种面向对象的编程语言,语法相对严谨。每个 Java 程序必须包含一个 main 方法作为程序入口。以下是一个简单的 Java 程序示例: public class…

如何使用java

如何使用java

安装Java开发环境 下载并安装Java Development Kit(JDK),推荐从Oracle官网或OpenJDK获取最新版本。安装完成后配置环境变量,确保JAVA_HOME指向JDK安装路径…

如何实现vue

如何实现vue

安装 Vue.js 使用 npm 或 yarn 安装 Vue.js。确保已安装 Node.js 环境。 npm install vue # 或 yarn add vue 创建 Vue 实例 在 H…

java如何创建数组

java如何创建数组

创建数组的基本方法 在Java中,数组是固定大小的同类型元素集合。创建数组需要声明数组类型并初始化。 声明数组 语法格式为 数据类型[] 数组名 或 数据类型 数组名[]: int[] arr…

如何安装java软件

如何安装java软件

下载Java安装包 访问Oracle官方网站或OpenJDK开源项目页面,选择适合操作系统的Java版本(如Windows、macOS或Linux)。对于个人使用,通常下载JDK(Java Devel…