簡體   English   中英

如何為泛型類型實現構造函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM