随码网随码网

java中泛型基本用法

java中泛型基本用法

Java 中的泛型(Generics)是一种在编译时实现类型安全的机制,它允许你编写可以适用于不同数据类型的代码,同时在编译时进行类型检查,以提高代码的可读性和安全性。泛型最常用于集合类(如列表、集合、映射等)以及自定义类的设计中。

1. 声明泛型类和接口:

public class Box<T> {
    private T item;

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

    public T getItem() {
        return item;
    }
}


Java 中的泛型(Generics)是一种在编译时实现类型安全的机制,它允许你编写可以适用于不同数据类型的代码,同时在编译时进行类型检查,以提高代码的可读性和安全性。泛型最常用于集合类(如列表、集合、映射等)以及自定义类的设计中。

以下是 Java 中泛型的基本用法:

1. 声明泛型类和接口:

public class Box<T> {
    private T item;

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

    public T getItem() {
        return item;
    }
}



2. 实例化泛型类:

Box<Integer> intBox = new Box<>();
intBox.setItem(10);
int value = intBox.getItem();


3. 泛型方法:

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



4. 通配符(Wildcards):

public void processList(List<?> list) {
    for (Object item : list) {
        System.out.println(item);
    }
}


5. 类型限定(Type Bounds):

public <T extends Number> double sum(List<T> numbers) {
    double total = 0.0;
    for (T number : numbers) {
        total += number.doubleValue();
    }
    return total;
}



6. 通配符上限和下限:

public void processNumbers(List<? extends Number> numbers) {
    // 可以读取,但不能写入
}

public void addToNumbers(List<? super Integer> numbers) {
    // 可以写入 Integer 或其子类,但无法确定具体类型
}


Java 中的泛型可以提高代码的重用性和可维护性,同时在编译时检查类型错误,减少运行时异常。在使用泛型时,需要注意类型擦除(Type Erasure)带来的一些限制,以及在不同泛型边界情况下的适当使用通配符。

未经允许不得转载:免责声明:本文由用户上传,如有侵权请联系删除!

赞 ()

评论