当前位置:首页 > Java

java如何定义泛型

2026-03-03 19:06:10Java

泛型类定义

在类名后添加尖括号 <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");
Box<Integer> intBox = new Box<>();
intBox.setContent(123);

泛型方法定义

在方法返回类型前声明类型参数 <T>,方法内可使用泛型类型:

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

调用时自动推断类型或显式指定:

String[] strArr = {"A", "B"};
printArray(strArr); // 自动推断为String
printArray(new Integer[]{1, 2}); // 自动推断为Integer

多类型参数

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

java如何定义泛型

public class Pair<K, V> {
    private K key;
    private V value;
    public Pair(K key, V value) {
        this.key = key;
        this.value = value;
    }
    // getter/setter省略
}

使用示例:

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

泛型接口定义

接口中定义泛型方式与类类似:

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

可传入 List<Integer>List<Double>

泛型限制

  • 不能使用基本类型(如 int,需用包装类 Integer
  • 不能直接实例化泛型:T obj = new T(); 非法
  • 静态上下文中不能使用类的类型参数

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

相关文章

react如何定义进程

react如何定义进程

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

java版本如何查看

java版本如何查看

查看Java版本的命令行方法 在命令行或终端中运行以下命令可以查看当前安装的Java版本: java -version 输出示例: java version "1.8.0_301" Java(TM…

eclipse如何创建java

eclipse如何创建java

在Eclipse中创建Java项目 打开Eclipse后,选择菜单栏中的"File" -> "New" -> "Java Project"。在弹出的对话框中输入项目名称,确保"Use de…

react如何定义路由

react如何定义路由

定义路由的基本方法 在React中定义路由通常使用react-router-dom库,这是React生态中最流行的路由解决方案。需要安装该库后才能使用路由功能。 npm install react-…

react如何定义常量

react如何定义常量

在 React 中定义常量的方法 在 React 中,常量通常用于存储不变的值,例如配置参数、静态数据或枚举值。以下是几种常见的定义方式: 使用 const 声明常量 在组件外部或内部使用 cons…

react当中如何定义路由格式

react当中如何定义路由格式

在React中定义路由格式 React中通常使用react-router-dom库来管理路由。以下是定义路由的常见方法: 安装react-router-dom 需要先安装路由库: npm inst…