java中,怎么调用别的类的私有方法
发布网友
发布时间:2022-04-30 16:11
我来回答
共1个回答
热心网友
时间:2022-06-27 03:55
反射(reflection)
[java] view plain copy
public static void main(String[] args) throws Exception {
Constructor<?> constructor = SecretTool.class.getDeclaredConstructors()[0];
constructor.setAccessible(true);
SecretTool tool = (SecretTool) constructor.newInstance(); // 得到它的一个实例
for(Method method : SecretTool.class.getDeclaredMethods()) {
method.setAccessible(true);
if(method.getName().equals("myMotto")) {
method.invoke(tool); // 调用没有返回值,无参的私有方法
} else if(method.getName().equals("calculate")) {
Integer result = (Integer)method.invoke(tool, 1,2);
System.out.println("1 + 2 = " + result.toString()); // 调用返回值为整数,且带参的私有方法
}
}
}
输出结果:
[plain] view plain copy
I like potato
1 + 2 = 3