[英]How to implement a constructor for a generic type
我編寫自己的泛型類並沒有做很多事情,但是我試圖創建自己的ArrayStack類,並且在理解如何正確編寫構造函數方面遇到困難。
public class ArrayStack<T> implements List<T> {
private T[] a;
private int n;
public ArrayStack(T[] a) {
this.a = a;
}
}
我的主班使用它:
public class ArrayStackTester {
public static void main(String[] args) {
ArrayStack<Integer> numbers = new ArrayStack<Integer>();
}
}
這將產生一個編譯錯誤,表明The ArrayStack<Integer> is undefined
,因此我顯然懷疑ArrayStack
類中的構造函數存在問題。
為了簡潔起見,我沒有包括所有重寫的List
方法。
嘗試先定義此無參數構造函數:
public ArrayStack() {
}
或者,傳遞正確類型的數組:
Integer[] array = new Integer[100];
ArrayStack<Integer> numbers = new ArrayStack<Integer>(array);
您定義了一個構造函數,該構造函數使用T[]
。 然后,您嘗試調用沒有參數的構造函數。 您需要為new ArrayStack<Integer>()
定義構造函數,以執行所需的操作。
public ArrayStack() {
// Initialize a (and possibly n) here as appropriate)
}
ArrayStack類是否已編譯?
有一個通用數組,會引起麻煩
如何在Java中創建通用數組?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.