Попробуйте вызвать эту функцию, чтобы установить приватное статическое конечное значение. Этот код отражения работает на Java 11, но не работает на 17. Возникла ошибка исключения такого поля.
Попробуйте вызвать эту функцию, чтобы установить приватное статическое конечное значение. Этот код отражения работает на Java 11, но не работает на 17. Возникла ошибка исключения такого поля. [code] public static void setFinalStatic(Field field, Object newValue) throws Exception { field.setAccessible(true); Field modifiersField = Field.class.getDeclaredField("modifiers"); modifiersField.setAccessible(true); modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL); field.set(null, newValue); } [/code] [code]java.lang.NoSuchFieldException: modifiers at java.base/java.lang.Class.getDeclaredField(Class.java:2610) [/code] Я попробовал --add-opens java.base/java.lang.reflect=ALL-UNNAMED, но это не работает. Есть ли какое-нибудь решение или обходной путь??
В настоящее время я пытаюсь использовать Reflection для вызова защищенного метода M класса C для объекта класса InheritsC, который наследуется от C (но не переопределяет M). У меня есть следующий код, основанный на этом ответе:
package...
Я хотел бы использовать автозагрузку для использования существующей базы данных. Я знаю, как это сделать без декларативного синтаксиса (model/_init_.py):
def init_model(engine):
Call me before using any of the tables or classes in the model...