我正在創建 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
提交
取消