您的位置:首页 > 其它

如何测试私有成员方法和变量

2010-12-15 00:28 267 查看
先考虑它是否可以单独到一个类,再考虑使用反射

class Stranger {

public Stranger(final String name) {
this.name = name;
}

private final String greet(final String hello) {
return hello + name;
}

private String name = "";
}

public class PrivateTest {

public static void main(String args[]) throws Exception {

Stranger testObj = new Stranger("Walter");
Class testClass = testObj.getClass();
// get private property
Field field = testClass.getDeclaredField("name");
// Make the field accessible
field.setAccessible(true);

// get private method
Class[] typeParams = new Class[] { String.class };
Method method = testClass.getDeclaredMethod("greet", typeParams);
// Make the method accessible
method.setAccessible(true);
// execute the method
Object objParams[] = { "hello, " };
String greet = (String)method.invoke(testObj, objParams);

System.out.println(greet);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐