当前位置:首页 > 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);
    }
}

使用示例:

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;
    }
}

使用示例:

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);
    }
}

类型通配符

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

java如何定义泛型

  • <? 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环境变量的方法 下载并安装JDK 从Oracle官网或OpenJDK下载适合操作系统的JDK安装包。运行安装程序并按照提示完成安装,记下JDK的安装路径(例如C:\Program File…

java如何创建包

java如何创建包

创建Java包的步骤 在Java中,包(package)用于组织和管理类文件,避免命名冲突。以下是创建Java包的详细方法: 定义包名 在Java源文件的开头使用package关键字声明包名。包名…

java如何获取当前时间

java如何获取当前时间

获取当前时间的方法 在Java中,可以通过多种方式获取当前时间。以下是几种常见的方法: 使用 java.util.Date Date currentDate = new Date(); Syste…

java如何处理高并发

java如何处理高并发

Java处理高并发的方法 使用多线程和线程池 Java的java.util.concurrent包提供了线程池(如ThreadPoolExecutor)和并发工具类(如CountDownLatch、C…

如何搭建java开发环境

如何搭建java开发环境

下载并安装JDK 从Oracle官网或OpenJDK下载适合操作系统的JDK版本。运行安装程序并按照提示完成安装,建议选择默认路径以减少配置复杂度。 配置环境变量 在系统环境变量中添加JAVA_HO…

如何选择java培训

如何选择java培训

评估培训机构资质 选择有正规资质的机构,查看其营业执照、办学许可证等。优先考虑具备人力资源和社会保障部或教育部认证的机构,这类机构的教学质量和课程设置通常更规范。 考察课程内容与行业需求匹配度…