繁体   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