当前位置:首页 > Java

java如何定义泛型

2026-02-05 07:52:05Java

定义泛型类

在类名后添加尖括号 <T>,其中 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>,泛型方法可独立于类的泛型参数。

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

使用示例:

java如何定义泛型

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

多类型参数

可定义多个类型参数,用逗号分隔。

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

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

使用示例:

java如何定义泛型

Pair<String, Integer> pair = new Pair<>("Age", 25);

泛型接口

接口也可使用泛型,定义方式与类类似。

public interface Listener<T> {
    void onEvent(T event);
}

实现示例:

public class StringListener implements Listener<String> {
    @Override
    public void onEvent(String event) {
        System.out.println(event);
    }
}

类型通配符

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

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

注意事项

  • 泛型仅适用于引用类型,基本类型需使用包装类(如 Integer 代替 int)。
  • 运行时泛型类型会被擦除(类型参数信息丢失),无法直接通过反射获取具体类型。
  • 静态成员不能使用类的类型参数,但可定义独立的泛型静态方法。

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

相关文章

java如何创建线程

java如何创建线程

创建线程的方法 在Java中,创建线程主要有两种方式:继承Thread类和实现Runnable接口。以下是具体实现方法: 继承Thread类 通过继承Thread类并重写run()方法可以创建线程。…

如何运行java

如何运行java

运行Java程序的方法 安装Java开发工具包(JDK) 确保系统已安装JDK。可通过命令行输入 java -version 检查是否安装。若未安装,需从Oracle官网或OpenJDK下载并配置环境…

如何学java

如何学java

学习Java的基础知识 Java是一门面向对象的编程语言,掌握基础语法是入门的关键。需要了解变量、数据类型、运算符、控制结构(如if-else、for循环、while循环)、数组等概念。可以通过官方文…

java如何react

java如何react

在Java中使用React 要在Java项目中集成React,通常需要将React前端与Java后端结合使用。以下是几种常见的方法: 使用Spring Boot作为后端 Spring Boot是一…

java如何定义变量

java如何定义变量

定义变量的基本语法 在Java中,变量定义需要指定数据类型和变量名,基本语法如下: 数据类型 变量名; 例如定义一个整型变量: int age; 声明并初始化变量 可以在声明变量的同时进行初始化赋…

java如何删除文件

java如何删除文件

删除文件的基本方法 使用 java.io.File 类的 delete() 方法可以删除文件。如果文件存在且删除成功,返回 true;否则返回 false。 import java.io…