作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
以下代码给我错误“类型不匹配:无法从 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>();
最佳答案
答案是:你不需要。
当你转向 javadoc对于 ArrayList,您可以在此处找到:
All Implemented Interfaces:
Serializable, Cloneable, Iterable, Collection, List, RandomAccess
StackInterface 不存在。因此,ArrayList 不能永远转换为该类型。
因此,您宁愿需要:
StackInterface<Integer> stack = new PostFixStack<>();
换句话说:您的 stack 实现类使用 ArrayList 这一事实是该实现的内部细节,当您想要创建一个堆栈时,您可以实例化 实现,而不是别的!
关于java - 如何将 ArrayList 转换为接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54900649/
我是一名优秀的程序员,十分优秀!