首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

java反照机制不能调用私有方法…

2012-09-28 
java反射机制不能调用私有方法……在网上看到java反射机制是可以调用私有方法的,但是我测试的时候却不行,当

java反射机制不能调用私有方法……
在网上看到java反射机制是可以调用私有方法的,但是我测试的时候却不行,当被调用方法是public权限时就可以调用,当时private权限时就发生异常,异常类型:java.lang.NoSuchMethodException
代码:
public class Test4 {

public static void main(String[] args) {
try {
Class1 a = new Class1();
Class c = a.getClass();
Class[] type = new Class[1];
type[0] = Integer.TYPE;

Object arglist[] = new Object[1]; 
arglist[0] = new Integer(37); 

Method method = c.getMethod("print", type);
method.invoke(a, arglist);
} catch (Exception e) {
System.out.println(e.getClass().getName());
}
}
}


public class Class1 { 
public Class1() {} 
private void print(int a) {
System.out.println("the number is : " + a);
}
}

[解决办法]
getDeclaredMethod(name, parameterTypes)使用这个方法获取方法,好好看看API,getMethod只能获取public的方法

热点排行