如何为泛型类型实现构造函数
How to implement a constructor for a generic type
我在编写自己的通用 classes 方面做得不多,但我正在尝试制作自己的 ArrayStack class 并且无法理解如何正确编写构造函数.
public class ArrayStack<T> implements List<T> {
private T[] a;
private int n;
public ArrayStack(T[] a) {
this.a = a;
}
}
我的主要 class 使用它:
public class ArrayStackTester {
public static void main(String[] args) {
ArrayStack<Integer> numbers = new ArrayStack<Integer>();
}
}
这会产生一个编译错误,显示 The ArrayStack<Integer> is undefined
,所以我显然怀疑 ArrayStack
class 中的构造函数有问题。
为简洁起见,我没有包含所有覆盖的 List
方法。
首先尝试定义这个无参数构造函数:
public ArrayStack() {
}
或者,传递正确类型的数组:
Integer[] array = new Integer[100];
ArrayStack<Integer> numbers = new ArrayStack<Integer>(array);
ArrayStackclass编译了吗?
有泛型数组,麻烦
How to create a generic array in Java?
您定义了一个构造函数,它采用 T[]
。然后你试图调用一个没有参数的构造函数。您需要为 new ArrayStack<Integer>()
定义构造函数来执行您需要它执行的操作。
public ArrayStack() {
// Initialize a (and possibly n) here as appropriate)
}
我在编写自己的通用 classes 方面做得不多,但我正在尝试制作自己的 ArrayStack class 并且无法理解如何正确编写构造函数.
public class ArrayStack<T> implements List<T> {
private T[] a;
private int n;
public ArrayStack(T[] a) {
this.a = a;
}
}
我的主要 class 使用它:
public class ArrayStackTester {
public static void main(String[] args) {
ArrayStack<Integer> numbers = new ArrayStack<Integer>();
}
}
这会产生一个编译错误,显示 The ArrayStack<Integer> is undefined
,所以我显然怀疑 ArrayStack
class 中的构造函数有问题。
为简洁起见,我没有包含所有覆盖的 List
方法。
首先尝试定义这个无参数构造函数:
public ArrayStack() {
}
或者,传递正确类型的数组:
Integer[] array = new Integer[100];
ArrayStack<Integer> numbers = new ArrayStack<Integer>(array);
ArrayStackclass编译了吗?
有泛型数组,麻烦
How to create a generic array in Java?
您定义了一个构造函数,它采用 T[]
。然后你试图调用一个没有参数的构造函数。您需要为 new ArrayStack<Integer>()
定义构造函数来执行您需要它执行的操作。
public ArrayStack() {
// Initialize a (and possibly n) here as appropriate)
}