0
私はMenuオブジェクトを持っています。Javaリフレクション:ArraylistとしてのFieldの値の取得方法<>
これはArrraylist<MenuItemImpl>
〜 "mItems"という名前です。これは隠しです。
(MenuItemImpl
)は、保護されたクラス&です。 クラス(here)
ここで、このarraylistをどのように取得できますか。 f.getで
@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;
}
()私はnew Arraylist<Object>
を使用していますが、例外
はme.Tanksが