如何在类的构造函数中使用泛型类型(Java)

时间:2017-04-16 07:34:46

标签: java generics constructor

我正在寻找一种方法来允许这个类的构造函数接受一个泛型类型的数组。

public class my
{

   public my(T[] arr)  // how resolve this
   {
      ...
   }
}

3 个答案:

答案 0 :(得分:5)

有两种方法可以将类型数组作为构造函数中的参数。一,您可以将参数添加到类中,如此...

public class my<T> {

   public my(T[] arr)
   {
        ...
   }

}

或者,您的构造函数可以接受类型参数,如下所示:

public class my {

   public <T> my(T[] arr)
   {
      ...
   }
}

您可以像这样初始化第一个类的对象:

my<SomeClass> varName = new my<>(arrayOfSomeClass);

你可以像这样初始化第二类的对象:

my varName = new <SomeClass>my();

希望这有帮助!

答案 1 :(得分:1)

我无法想到在非泛型类中需要泛型构造函数的任何情况。但是,嘿,你走了:

您只需将<T>添加到构造函数声明:

public <T> my(T[] arr) {

}

调用此构造函数时要小心。由于它是通用的,因此您无法使用intchar等原始类型。您需要使用其引用类型对应的IntegerCharacter

答案 2 :(得分:1)

添加<T>以及我的

类的名称
public class my<T> {
    public my(T[] arr) {
    }
}