当前位置:首页 > 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>,泛型方法可独立于类是否为泛型类。

java 如何定义泛型

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

多类型参数

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

java 如何定义泛型

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),因此运行时无法获取泛型的具体类型。

  • 不能实例化泛型类型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开发工具包(JDK) 访问Oracle官方网站或OpenJDK项目页面下载适合操作系统的JDK安装包。选择与系统架构匹配的版本(如Windows x64、macOS ARM等)。运行安装程…

java如何学习

java如何学习

学习Java的有效方法 理解基础概念 Java是一门面向对象的编程语言,掌握基础概念如变量、数据类型、运算符、控制语句(if-else、循环)是必要的。面向对象的核心概念包括类、对象、继承、多态和封装…

react如何定义进程

react如何定义进程

在 React 中,"进程"通常指的是组件的生命周期或状态管理流程,而不是操作系统级别的进程。以下是 React 中定义和管理组件流程的常见方法: 使用生命周期方法 类组件可以通过生命周期方法(如…

java如何定义数组

java如何定义数组

定义数组的基本语法 在Java中,数组可以通过以下两种方式定义: 方式一:声明数组并指定长度 数据类型[] 数组名 = new 数据类型[数组长度]; 例如: int[] numbers…

如何运行java文件

如何运行java文件

运行Java文件的方法 确保已安装Java Development Kit (JDK),可通过命令行输入java -version和javac -version验证安装。 编写Java代码并保存为.…

java如何创建对象

java如何创建对象

创建对象的基本方法 在Java中,创建对象主要通过new关键字调用构造函数完成。基本语法为: ClassName objectName = new ClassName(); 例如创建String对象…