2010-10-15 69 views
3

首先,这不是我想要做的一些正常的操作,但是这个附带案例涉及到大量遗留代码,我不能触及,需要编写的单元测试用于新的东西。你能反映一个私有静态方法在Java中

无论如何,我有一个类,我可以通过反射访问所有的字段和方法,除了私人/保护静态的。那么有没有办法通过反射来访问这些私有静态方法?

回答

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

哇,搜索了几个小时后,我从来不知道class.getMethod()和class.getDeclaredMethod()之间有区别...干杯 – Grofit 2010-10-15 08:42:22

0

尝试powermock。这是一个测试库,可以做各种你不应该在绿地开发中的东西。

0

包装那些可以被对象访问的方法。我相信着名的IDE已经为此目的而重构了工具(类包装)。