当前位置:首页 > Java

java 如何定义泛型

2026-02-05 07:37:48Java

定义泛型类

在类名后添加尖括号 <T>T 是类型参数占位符(可自定义为其他字母,如 EKV 等)。泛型类中的字段、方法参数或返回值可使用该类型参数。

public class Box<T> {
    private T content;

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

    public T getContent() {
        return content;
    }
}

定义泛型方法

在方法返回值前声明类型参数 <T>,泛型方法可独立于类是否为泛型类。

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

多类型参数

泛型支持多个类型参数,用逗号分隔。

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

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

泛型通配符

使用 ? 表示未知类型,通常用于方法参数以增强灵活性:

  • <?>:无限制通配符。
  • <? extends T>:上界通配符,表示 T 或其子类。
  • <? super T>:下界通配符,表示 T 或其父类。
public void processList(List<? extends Number> list) {
    for (Number num : list) {
        System.out.println(num);
    }
}

类型擦除与限制

Java 泛型在编译后会被擦除为原始类型(如 Object),因此运行时无法获取泛型的具体类型。

java 如何定义泛型

  • 不能实例化泛型类型new T() 是非法的。
  • 不能用于静态上下文:静态字段或方法不能使用类的类型参数。
  • 不能使用基本类型:泛型类型必须为引用类型(如 Integer 而非 int)。

实际应用示例

Box<String> stringBox = new Box<>();
stringBox.setContent("Hello");
System.out.println(stringBox.getContent()); // 输出 "Hello"

Pair<Integer, String> pair = new Pair<>(1, "Apple");
List<Double> numbers = Arrays.asList(1.1, 2.2);
processList(numbers); // 输出 1.1 和 2.2

标签: 定义java
分享给朋友:

相关文章

java如何生成随机数

java如何生成随机数

生成随机数的方法 在Java中生成随机数可以通过多种方式实现,以下是几种常见的方法: 使用Math.random()方法 Math.random()方法返回一个double类型的伪随机数,范围在[0…

java中如何定义数组

java中如何定义数组

定义数组的基本语法 在Java中,数组是固定长度的同类型数据集合。定义数组需指定数据类型和数组名称,可通过两种方式声明: 数据类型[] 数组名;数据类型 数组名[]; 推荐使用第一种方式,更符合Ja…

如何搭建java环境

如何搭建java环境

下载JDK 访问Oracle官网或OpenJDK官网下载适合操作系统的JDK安装包。推荐选择长期支持版本(如JDK 17或JDK 21)。 安装JDK 运行下载的安装程序,按照向导完成安装。注意…

如何用java编程

如何用java编程

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

react中如何定义初始状态

react中如何定义初始状态

在 React 中定义初始状态 在 React 中,组件的初始状态可以通过类组件或函数组件(使用 Hooks)两种方式定义。以下是具体方法: 类组件中定义初始状态 在类组件中,通过 construc…

react如何定义整形变量

react如何定义整形变量

在React中定义整型变量 在React中,变量定义遵循JavaScript语法,JavaScript中没有严格的整型(integer)类型,所有数字都以浮点数(number)类型存储。可以通过以下方…