我正在修复游戏我的游戏的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)
答案 0 :(得分:4)
应该是
Minecraft.class.getDeclaredField("a");
也许这是反编译器的错误。
getDeclaredField()
是Class
类型的方法,Minecraft.class
是该类型的文字值。