Java反射:如何获取Arraylist字段的值<&燃气轮机;

Java反射:如何获取Arraylist字段的值<&燃气轮机;,java,android,reflection,Java,Android,Reflection,我有一个菜单对象 这有一个Arrraylist到“mItems”名称。这是隐藏 (menuitemmpl)是一个隐藏和保护类。 见第()类 现在,我怎样才能得到这个arraylist @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { List<Field> list = getAllFie

我有一个菜单对象

这有一个
Arrraylist
到“mItems”名称。这是隐藏

menuitemmpl
)是一个隐藏和保护类。 见第()类

现在,我怎样才能得到这个arraylist

@Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)
    { 

      List<Field> list = getAllFields(menu);
      for(Field f: list)
      {
          if(f.getName().equals("mItems"))
           {
             f.setAccessible(true);
             return f.get( /* here */ );   // <<--- I use new Arraylist<Object> , but get exception
           }
       }
   }

public static List<Field> getAllFields(Object obj)
    {
        List<Field> res = new ArrayList<>();
        res.addAll(Arrays.asList(obj.getClass().getDeclaredFields()));
    if (obj.getClass().getSuperclass() != null)
    {
        res.addAll(Arrays.asList(obj.getClass().getSuperclass().getDeclaredFields()));
    }

    return res;
}
@覆盖
public void onCreateContextMenu(ContextMenu菜单,视图v,ContextMenu.ContextMenuInfo菜单信息)
{ 
列表=getAllFields(菜单);
用于(字段f:列表)
{
如果(f.getName().equals(“mItems”))
{
f、 setAccessible(true);
返回f.get(/*这里*/);/哦,我得到了我的答案

for(Field f: list)
      {
          if(f.getName().equals("mItems"))
           {
             f.setAccessible(true);
             return f.get(menu);
           }
       }