2010-10-15 2 views
3

Прежде всего это не какое-то нормальное действие, которое я бы хотел сделать, однако этот случай, связанный с большим количеством устаревшего кода, который я не могу коснуться, и модульные тесты, которые необходимо записать для новые вещи.Можете ли вы задуматься о частном статическом методе в Java

В любом случае у меня есть класс, и я могу получить доступ ко всем полям и методам через отражение, за исключением частных/защищенных статических. Так есть ли способ получить доступ к этим частным статическим методам через отражение?

ответ

7
Method method = Foo.class.getDeclaredMethod("methodName"); 
method.setAccessible(true); 
Object result = method.invoke(null); 
+0

Ничего себе, после поиска часов я не знал, что существует разница между class.getMethod() и class.getDeclaredMethod() ... ура – Grofit

0

Попробуйте powermock. Это тестовая библиотека, которая может делать всевозможные вещи, которые вы не должны разрабатывать в разработке.

0

Оберните те методы, к которым может обращаться объект. Я считаю, что известные IDE уже имеют инструменты для рефакторинга только для этой цели (классные оболочки).

Смежные вопросы