我正在创建 ArrayLists 并使用 push() 将它们存储在 Stack 中。然而,当我弹出时,它给了我一个错误Object cannot be converted to List<Integer>。这是我的代码: List<Integer> myl=new ArrayList<Integer>();
myl=myStack.pop();
1 回答
aluckdog
TA贡献1847条经验 获得超7个赞
两件事情:
List<Integer> myl = new ArrayList<Integer>();
可以简化为:
List<Integer> items = new ArrayList<>();
菱形运算符允许避免重复类型信息。我也将其更改为使用有意义的名称。不要使用没有意义的缩写。使用你的读者容易理解的东西。
然后,您只需要一个演员表:
items = (List<Integer>) myStack.pop();
当然,这需要您确实在堆栈顶部有一个列表!
理想情况下,您的堆栈本身可以支持泛型,这样您就可以这样说:
MyStack<List<Integer>> myStack = new MyStack<>();
这样你以后就可以简单地去
items = myStack.pop();
没有演员!
你看,当你的方法签名说 时this method returns Object
,那么编译器应该如何知道在这种情况下,因为你之前添加了一个列表,该值具有更具体的类型?!
添加回答
举报
0/150
提交
取消