Я читал довольно много вопросов по Stackoverflow об этом вопросе, но не мог отказаться от решения или ответа для моей проблемы. Если будет уже один, я был бы признателен, если бы кто-нибудь дал подсказку ...Java Security Manager полностью отключает отражение
Моя проблема/вопрос в том, можно ли полностью отключить отражение для ненадежного кода? Такие функции, как getDeclaredMethods()
(см. Test.java). У меня уже есть диспетчер безопасности Java, который генерирует исключения безопасности, если код пытается написать/прочитать/etc. ...
Если возможно, может ли кто-нибудь показать мне, как?
Bruno
test.java
TestClass cls = new TestClass();
Class c = cls.getClass();
// returns the array of Method objects
Method[] m = c.getDeclaredMethods();
for(int i = 0; i < m.length; i++) {
System.out.println("method = " + m[i].toString());
}
Я скопировал код и добавил 'певд SecurityException (...)', но исключение не брошено ... функция даже не вызывается ... – Bruno
Да, это не называется для 'getDeclaredMethods()', но если вы хотите получить доступ к приватным/защищенным методам с помощью метода Method.setAccessible (true), вызывается 'SecurityManager'. – Stefan
Я обновил ответ для проверки 'getDeclardXYZ()'. Надеюсь, поможет. – Stefan