2013-11-03 180 views
1

我試圖擴展堆棧庫,但不斷收到以下錯誤消息: 發現:java.util.Stack中 要求:java.util.Stack中的[]擴展協議棧庫

非靜態類T不能從靜態上下文中引用 EStack a = new EStack();

我的代碼如下:

public class EStack<T> extends Stack <T>{ 
    Stack [] stack; 

    public EStack(){ 
     this.stack=new Stack(); 
    } 

    public static void main(){ 
     EStack<T> a = new EStack <T>(); 

     a.push("hello"); 
    } 
} 

回答

0
  1. 您聲明array對象(Stack[]),然後你想Stack對象分配給它。這是兩種不同的類型。

  2. 並且該代碼段EStack <T> a = new EStack <T>();確實沒有意義,因爲您沒有該構造函數,並且在這裏看不到任何使用泛型的要點。也許你可以多解釋一下。

  3. 不要在您的子類中創建main()方法!使用單獨的Main類來測試您的代碼。

+0

我想創建一個新的類,它擴展了Java庫中的堆棧庫類,以便我可以(在此步驟之後)向我的新類添加另一個方法。我被困在擴展堆棧庫的步驟。 – RuneScape