如何在列表字段中使用field.get(obj)



我想从类中获得一个私有的List字段,但我不知道给field.get什么参数才能成功地从类中获取List。我当前的代码生成java.lang.IollegalArgumentException.

Field field = Minecraft.class.getDeclaredField("defaultResourcePacks");
field.setAccessible(true);
List<IResourcePack> changedList = new ArrayList<IResourcePack>();
List<IResourcePack> list = (List<IResourcePack>) field.get(changedList);

在您的示例中:

List<IResourcePack> changedList = new ArrayList<IResourcePack>();
List<IResourcePack> list = (List<IResourcePack>) field.get(changedList);

您使用get()的方式不对。所需的参数必须是Minecraft类的Object;get提取您之前识别的字段的内容。换句话说:您不需要输入参数"changedList";你需要一个Minecraft对象。

我认为您应该使用get(objOfMinecraft)

相关内容

最新更新