6.泛型

泛型

一、泛型介绍

  1. 泛型类:class 类名<T> { ... }
  2. 泛型接口:interface 接口名<T> { ... }
  3. 泛型方法:<T> 返回值类型 方法名(参数列表) { ... }
import java.util.ArrayList;
import java.util.List;

/**
 * 本文件展示了Java泛型的基本用法,包括泛型类、泛型接口和泛型方法。
 */
public class GenericExample {

    /**
     * 泛型类示例:Box<T>
     * 用于存储任意类型的数据。
     */
    public static class Box<T> {
        private T item;

        public void setItem(T item) {
            this.item = item;
        }

        public T getItem() {
            return item;
        }
    }

    /**
     * 泛型接口示例:Container<T>
     * 定义了一个可以存储和获取元素的容器。
     */
    public interface Container<T> {
        void add(T item);
        T get(int index);
    }

    /**
     * 实现泛型接口的类:StringContainer
     * 专门用于存储字符串类型的容器。
     */
    public static class StringContainer implements Container<String> {
        private List<String> items = new ArrayList<>();

        @Override
        public void add(String item) {
            items.add(item);
        }

        @Override
        public String get(int index) {
            return items.get(index);
        }
    }

    /**
     * 泛型方法示例:printArray(T[] array)
     * 打印任意类型的数组内容。
     */
    public static <T> void printArray(T[] array) {
        for (T element : array) {
            System.out.println(element);
        }
    }

    /**
     * 主方法:测试泛型类、接口和方法的功能。
     */
    public static void main(String[] args) {
        // 测试泛型类 Box<T>
        Box<Integer> integerBox = new Box<>();
        integerBox.setItem(123);
        System.out.println("泛型类 Box<Integer> 存储的值: " + integerBox.getItem());

        Box<String> stringBox = new Box<>();
        stringBox.setItem("Hello, Generics!");
        System.out.println("泛型类 Box<String> 存储的值: " + stringBox.getItem());

        // 测试泛型接口 Container<T>
        Container<String> container = new StringContainer();
        container.add("Item 1");
        container.add("Item 2");
        System.out.println("泛型接口 Container<String> 获取的值: " + container.get(0));

        // 测试泛型方法 printArray(T[] array)
        Integer[] intArray = {1, 2, 3};
        System.out.println("泛型方法 printArray(Integer[]):");
        printArray(intArray);

        String[] stringArray = {"A", "B", "C"};
        System.out.println("泛型方法 printArray(String[]):");
        printArray(stringArray);
    }
}
posted @ 2025-12-15 15:07  Godjian  阅读(3)  评论(0)    收藏  举报