如何访问私有成员?
ding 2003-10-15 08:36:37 背景:
在某项目中,需要根据方法的形式参数来实例化相应的对象以便对方法进行测试。例如有一个方法:
public void test(SomeObject obj)
其中SomeObject的源代码有可能得不到(调用第三方的包时),需要实例化一个SomeObject,并且可以对SomeObject的各个成员变量(包括私有)随意赋值?
现在的问题在于:
使用java.lang.reflect中的相应方法,只能得到各个成员变量的声明,不能设置私有成员变量的值;
由于不清楚被测试类中各个方法的语义,无法使用现有的方法来对私有成员变量赋值;
由于没有源代码,对源代码打桩也是不可能实现的。
那么,请问,怎样才能实例化一个类,并能对其所有成员随意赋值?