当前位置:首页 > Java

java泛型如何使用

2026-02-04 23:41:01Java

泛型的基本概念

泛型(Generics)是Java 5引入的特性,允许在类、接口或方法中使用类型参数,从而提供编译时类型检查,避免运行时类型转换错误。泛型的核心目的是增强代码的复用性和类型安全性。

泛型类

泛型类通过在类名后添加类型参数(如<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 item : array) {
        System.out.println(item);
    }
}

调用时可通过上下文推断类型:

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

泛型接口

泛型接口与泛型类类似,通过类型参数定义接口的行为。

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

实现时需指定具体类型:

java泛型如何使用

public class StringList implements List<String> {
    @Override
    public void add(String item) { /* ... */ }
    @Override
    public String get(int index) { /* ... */ }
}

类型通配符

通配符(?)用于处理未知类型,通常分为以下三种:

  • 无界通配符 <?>:表示任意类型。
  • 上界通配符 <? extends T>:表示T或其子类。
  • 下界通配符 <? super T>:表示T或其父类。

示例:

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

泛型限制

  • 类型擦除:泛型信息在编译后会被擦除,运行时无法获取类型参数的具体类型。
  • 不能实例化泛型类型:如new T()是非法的。
  • 不能用于静态上下文:类的静态方法或变量不能使用类的泛型参数。

实际应用示例

集合框架(如ArrayListHashMap)广泛使用泛型:

List<String> names = new ArrayList<>();
names.add("Alice");
Map<Integer, String> idToName = new HashMap<>();
idToName.put(1, "Bob");

通过合理使用泛型,可以显著提升代码的类型安全性和可读性。

分享给朋友:

相关文章

react moment如何使用

react moment如何使用

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

java如何使用

java如何使用

Java 基本使用方法 Java 是一种广泛使用的编程语言,适用于开发各种类型的应用程序。以下是 Java 的基本使用方法,包括环境配置、语法基础和常用操作。 安装 Java 开发环境 下载并安装…

java如何编译

java如何编译

编译Java程序的基本步骤 安装JDK(Java Development Kit)并配置环境变量。确保javac和java命令可在命令行中运行。JDK是编译和运行Java程序的必备工具。 创建Jav…

如何配置java环境

如何配置java环境

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

如何卸载java

如何卸载java

卸载Java的步骤 Windows系统卸载方法 打开控制面板,选择“程序和功能”或“卸载程序”。在列表中找到Java相关条目(如“Java 8 Update 251”),右键选择卸载并跟随向导完成…

java如何输出数组

java如何输出数组

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