你能反思Java中的私有静态方法吗?

时间:2010-10-15 08:26:16

标签: java reflection static

首先,这不是我想要做的一些正常行动,但是这个边缘案件涉及我无法触及的大量遗留代码,以及需要为更新的东西编写的单元测试。

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

3 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:0)

试试powermock。它是一个测试库,可以完成你在绿地开发中不应该做的各种事情。

答案 2 :(得分:0)

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