📜  java 构造函数泛型 - Java (1)

📅  最后修改于: 2023-12-03 14:42:19.189000             🧑  作者: Mango

Java 构造函数泛型

在 Java 中,构造函数也可以使用泛型。构造函数泛型可以让我们在实例化对象的时候指定某个数据类型,并将这个数据类型传递到内部的方法中使用。

声明构造函数泛型

声明构造函数泛型和声明普通的泛型方法一样,在构造函数名称之前加上尖括号 <T>,其中 T 为泛型占位符。

public class GenericClass<T> {
    private T item;

    public GenericClass(T item) {
        this.item = item;
    }
}

上面的代码定义了一个名为 GenericClass 的泛型类,它有一个泛型 T,并在构造函数中接受一个类型为 T 的参数。

使用构造函数泛型

在实例化一个泛型类时,我们需要指定泛型的具体类型,并传递给构造函数。

GenericClass<String> stringInstance = new GenericClass<>("Hello");
GenericClass<Integer> intInstance = new GenericClass<>(123);

上面的代码分别实例化了一个 GenericClass 对象,一个传递了一个 String 类型的参数,一个传递了一个 Integer 类型的参数。

我们也可以在声明构造函数时指定多个泛型类型,并在实例化对象时指定不同的类型。

public class MultiGenericClass<T, U> {
    private T firstItem;
    private U secondItem;

    public MultiGenericClass(T firstItem, U secondItem) {
        this.firstItem = firstItem;
        this.secondItem = secondItem;
    }
}

MultiGenericClass<Integer, String> instance = new MultiGenericClass<>(123, "Hello");

上面的代码定义了一个名为 MultiGenericClass 的泛型类,它有两个泛型 TU,并在构造函数中接受一个类型为 T 的参数和一个类型为 U 的参数。我们在实例化对象时分别传递了一个 Integer 类型的参数和一个 String 类型的参数。

总结

使用构造函数泛型可以让我们在实例化对象时指定具体的数据类型,并将其传递到类内部进行使用。声明构造函数泛型和声明普通的泛型方法一样,在构造函数名称之前加上尖括号 <T>。在实例化一个泛型类时,我们需要指定泛型的具体类型,并传递给构造函数。