在做测试的时候可能需要访问测试类的私有变量和方法
可以利用java的反射机制来实现,以TestClass为例来说
TestClass instance = new TestClass();
Field field = instance.getClass().getDeclaredField("fieldName");
//关闭java的访问修饰符检测
field.setAccessible(true);
//直接给field赋值
//fieldValue - 要赋的值
field.set(instance, fieldValue);
//取field的值
field.get(instance);
//访问调用私有方法 args... - 传给该方法的参数
Method method = instance.getClass().getDeclaredMethod("methodName",TestClass.class);
method.setAccessible(true);
method.invoke(instance, args...);
可以利用java的反射机制来实现,以TestClass为例来说
TestClass instance = new TestClass();
Field field = instance.getClass().getDeclaredField("fieldName");
//关闭java的访问修饰符检测
field.setAccessible(true);
//直接给field赋值
//fieldValue - 要赋的值
field.set(instance, fieldValue);
//取field的值
field.get(instance);
//访问调用私有方法 args... - 传给该方法的参数
Method method = instance.getClass().getDeclaredMethod("methodName",TestClass.class);
method.setAccessible(true);
method.invoke(instance, args...);