簡體   English   中英

如何將ArrayList轉換為接口?

[英]How do I convert ArrayList to interface?

下面的代碼給我錯誤“類型不匹配:無法從ArrayList轉換為StackInterface”。 我該如何轉換或為ArrayList使用錯誤的數據類型?

public class PostFixStack<T> implements StackInterface<T>
    protected ArrayList<T> elements; // ArrayList that holds stack elements
    public PostFixStack() {elements = new ArrayList<T>();      
}

public int evaluate(String expression){
    Scanner tokenizer = new Scanner(expression);
    StackInterface<Integer> stack = new ArrayList<T>();

答案是:您不知道。

當您轉向ArrayList的javadoc時 ,會發現:

所有已實現的接口:

可序列化,可克隆,可迭代,集合,列表,RandomAccess

StackInterface不存在。 因此,ArrayList 永遠不能轉換為該類型。

因此,您寧願需要:

StackInterface<Integer> stack = new PostFixStack<>();

換句話說:您的堆棧實現類使用ArrayList的事實是該實現的內部細節,並且當您要創建一個堆棧時,您可以實例化實現,而不是其他實例!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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