gpt4 book ai didi

Java反射: how get value of Field as Arraylist<>

转载 作者:行者123 更新时间:2023-12-02 13:28:14 24 4
gpt4 key购买 nike

我有一个菜单对象。

这有一个 Arrraylist<MenuItemImpl>以“mItems”名称。这是隐藏。

( MenuItemImpl ) 是一个隐藏和 protected 类。请参阅类 ( here )

现在,我如何获得这个数组列表。

@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;
}

在 f.get() 中我使用 new Arraylist<Object> ,但出现异常

请帮助我。坦克

最佳答案

哦,我得到了答案。

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

关于Java反射: how get value of Field as Arraylist<>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43304670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com