2012-07-23 28 views
2

編譯錯誤myClass的錯誤「不兼容的類型 - 發現java.lang.Object繼承但預計E」當我試圖以這種形式來編譯代碼生成:發現...對象,但預計使用Java堆棧

public class E { 
    private int x;  

    public E { 
     x = 0; 
    } 
} 

public class Class { 
    private E o; 
    private E b; 
    private Stack stack = new Stack(); 

    public void foo() { 
     stack.push(o); 
    } 

    public void bar() { 
     **b = stack.pop();** 
    } 
} 

回答

5

你可以聲明堆棧包含E S:

private Stack<E> stack = new Stack<E>(); 
2

嘗試鑄造E.

public void bar() { 
    b = (E)stack.pop(); 
} 
+0

謝謝你,我是新的T Java是否是正確的實現方式?沒有?這是否使堆棧可以存儲多種類型? – Flexo1515 2012-07-23 00:26:47

+0

是的,你可以像Arne所說的那樣做。 – Zong 2012-07-23 00:30:48