Java 泛型是如何工作的?
泛型允许创建类型未指定时就能使用的类和方法,实现方式是在类型名称中使用类型参数。语法:
简介
泛型是一种编程技术,允许我们在不指定实际类型的情况下创建类、接口和方法。它们通过在类型名称中使用类型参数(也称为类型变量)来实现。
语法
要创建泛型类型,我们在类型名称后指定一个或多个尖括号,其中包含类型参数:
public class Box<T> { private T value; }
Box 类接受一个类型参数 T,该参数用于指定存储在盒子中的值类型。
类型推断
在许多情况下,Java 编译器可以推断类型参数,如下所示:
List<String> names = new ArrayList<>();
这里,List 的类型参数 T 被编译器推断为 String。
实战案例
以下是一个使用泛型创建队列的示例:
public class Queue<T> { private Node<T> head; private Node<T> tail; public void enqueue(T item) { Node<T> newNode = new Node<>(item); if (head == null) { head = tail = newNode; } else { tail.setNext(newNode); tail = newNode; } } public T dequeue() { if (head == null) { return null; } T item = head.getValue(); head = head.getNext(); if (head == null) { tail = null; } return item; } }
此队列可以存储任何类型的元素,因为类型参数 T 未指定。您可以如下方式使用它:
Queue<String> stringQueue = new Queue<>(); stringQueue.enqueue("Hello"); stringQueue.enqueue("World"); System.out.println(stringQueue.dequeue()); // 输出: Hello