Java 嵌套 ArrayList returns 对象

Java Nested ArrayList returns Object

我有一个嵌套的 ArrayList

ArrayList<ArrayList<MenuItem>> MenuList = ArrayList<ArrayList<MenuItem>>()

MenuItem 是我的 class,包含项目名称和任务 (int)。我正在使用几个按钮来循环访问我的菜单,当我按下 "enter" 键时,我想访问当前选择的 MenuItem。

代码如下;

// enter button pressed
if(buttonStateEnter != lastButtonStateEnter){
   // changes
   // get current menu
   ArrayList currentMenuList = MenuList.get(currentMenu);

   // get menuItem obj
   Object test = currentMenuList.get(0);

   System.out.println(test.getClass());

   // get the task (int)
   //int changeTask = subNest.getTask();

   lastButtonStateEnter = buttonStateEnter;
   redraw = true;
}

我想创建 MenuItem 测试而不是 Object 测试,因为我无法通过这种方式访问​​我的方法。 test.getClass() returns Class 菜单项。将 MenuItem 测试放入代码中会出现错误

java.lang.Object cannot be converted to MenuItem

List<MenuItem> Menu = new ArrayList<MenuItem> () 应该有帮助。

或者您必须使用 get 操作对其进行类型转换,如下所示:
(MenuItem)Menu.get(

但是第二个选项会给你警告,以确保你正在转换为正确的类型

// enter button pressed
if(buttonStateEnter != lastButtonStateEnter) {
  // changes
  // get current menu
  ArrayList<MenuItem> currentMenuList = MenuList.get(currentMenu);

  // get menuItem obj
  MenuItem test = currentMenuList.get(0);

  System.out.println(test.getClass());

  // get the task (int)
  //int changeTask = subNest.getTask();

  lastButtonStateEnter = buttonStateEnter;
  redraw = true;
}
// enter button pressed
if(buttonStateEnter != lastButtonStateEnter){
   // changes
   // get current menu
   ArrayList <MenuItem> currentMenuList = MenuList.get(currentMenu);

   // get menuItem obj
   MenuItem test = currentMenuList.get(0);

   System.out.println(test.getClass());

   // get the task (int)
   //int changeTask = subNest.getTask();

   lastButtonStateEnter = buttonStateEnter;
   redraw = true;
}

This should work...