我正在为我的世界游戏的Mod进行修复。但是有一个问题。该mod不是我制作的,所以我必须反编译
长话短说,这是我第一次研究模糊不清的资料。
我只能编辑一个文件(大约1.5K)。
它反编译很好,我编辑了我想要的东西,但是现在我无法编译它。我正在使用classpath变量将其指向jar,因此我仍然可以使用游戏其余部分中的类。但是存在2个错误,均涉及“ .getDeclaredField(s)”。
码:
public static Minecraft getMinecraft()
{
try
{
Field field = Minecraft.getDeclaredField("a"); // Error here
field.setAccessible(true);
return (Minecraft)field.get(null);
}
catch(IllegalAccessException illegalaccessexception)
{
illegalaccessexception.printStackTrace();
}
catch(NoSuchFieldException nosuchfieldexception)
{
nosuchfieldexception.printStackTrace();
}
return null;
}
另一种情况就是这样,因此无需向您展示。
错误日志:
TMIUtils.java:23: cannot find symbol
symbol : method getDeclaredField(java.lang.String)
location: class net.minecraft.client.Minecraft
Field field = Minecraft.getDeclaredField("a");
我将如何解决这个问题? (请记住,这也是第一次使用getDeclaredField)
最佳答案
它应该是
Minecraft.class.getDeclaredField("a");
也许这是反编译器的错误。
getDeclaredField()
是类型Class
的方法,而Minecraft.class
是该类型的文字值。