Можете ли вы подумать о частном статическом методе в Java - PullRequest
3 голосов
/ 15 октября 2010

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

Ответы [ 3 ]

7 голосов
/ 15 октября 2010
Method method = Foo.class.getDeclaredMethod("methodName");
method.setAccessible(true);
Object result = method.invoke(null);
0 голосов
/ 15 октября 2010

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

0 голосов
/ 15 октября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...