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...
我有一个嵌套的 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...