我正在为我的世界游戏的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是该类型的文字值。

07-27 18:30