Согласно пониманию, можно манипулировать общим понятием ключевого слова final
, используя отражение.
Также возможно предотвратить то же самое с помощью менеджера безопасности.
Можно ли включить менеджера безопасности по умолчанию (на уровне установки jdk)?
Использованная литература :
- Изменить частное статическое конечное поле с помощью отражения Java
- Запуск Java Security Manager без файла java.policy по умолчанию< /а>
Обновление 1:
Учитывая, что его необходимо включить для работы, маловероятно, что это возможно.
Самое близкое, что я получил, это поместить System.setSecurityManager(new SecurityManager())
в статический блок класса, связать его как банку и поместить в «jre/lib/ext», только чтобы обнаружить, что он не загружен по умолчанию, и нам все еще нужно использовать класс .forName.
Так что даже в противном случае единственными вариантами являются либо использование флага -Djava.security.manager
, либо добавление программно.