你能否谈谈Java中的私有静态方法?

3

首先,这不是我想要做的普通操作,但由于涉及到许多我无法触及的旧代码和需要编写新东西的单元测试,所以这是个特殊情况。

总之,我有一个类,可以通过反射获得所有字段和方法的访问权限,除了私有/受保护的静态方法。那么是否有办法通过反射访问这些私有静态方法呢?

3个回答

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

哇,搜索了几个小时后我才知道class.getMethod()和class.getDeclaredMethod()之间有区别...干杯! - Grofit

0
尝试使用powermock。它是一个测试库,可以在绿地开发中执行各种你所不应该做的事情。

0

将可以被对象访问的方法进行封装。我相信著名的IDE已经有了专门用于此目的的重构工具(类包装器)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接