Метод getDeclaredField не определен - PullRequest
1 голос
/ 25 октября 2011

Я работаю над исправлением для мода для игры Minecraft. но есть подвох. Мод не сделан мной, поэтому я должен декомпилировать его

Короче говоря, я впервые работаю с неясными, неполными источниками.

Я собираюсь редактировать только ОДИН файл (из примерно 1,5 КБ).

Он прекрасно декомпилировался, и я отредактировал то, что хотел, но теперь не могу его скомпилировать. Я использую переменную classpath, чтобы указать ее на банку, поэтому я все еще могу использовать классы из остальной части игры. но существует 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)

1 Ответ

4 голосов
/ 25 октября 2011

должно быть

Minecraft.class.getDeclaredField("a");

Возможно, это ошибка декомпилятора.

getDeclaredField() - это метод типа Class, а Minecraft.class - это буквальное значение этого типа.

...