Я видел кучу старых постов, которые давали различные методы для этого, ни один из которых не работал для меня. Я делаю этот пост, чтобы спросить текущий метод работы, по состоянию на 2025 год. Я надеюсь на универсальное решение, но я тоже включу подробности моего варианта использования. < /P>
Что мне нужно, и что я могу контролировать? класс погрузчик. Это плагин также означает, что я не могу контролировать переменные среды или параметры при запуске JVM.
Я хочу изменить значение частного окончательного commandMap класса в классе org.bukkit.plugin.simplepluginmanager . Это не примитив. < /P>
Что я попробовал? java.lang.reflect.field Поля были скрыты.
field.setAccessible(true);
Field modifiersField = field.getClass().getDeclaredField("modifiers");
modifiersField.setAccessible(true);
modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
< /code>
Я попробовал org.apache.commons.lang3.reflect.fieldutils < /code> только для того, чтобы понять, что он использует тот же трюк, что и выше. В комментариях говорится, что это работает на Java 21.
Подробнее здесь: https://stackoverflow.com/questions/797 ... in-java-21