黑马程序员技术交流社区
标题:
反射--成员方法
[打印本页]
作者:
杨庆雷
时间:
2014-8-8 02:10
标题:
反射--成员方法
public class Test {
public static void main(String[] args) {
try {
Object obj = ReflectPiont.class.newInstance();
Method method = obj.getClass().getMethod("printStr",String.class);
String str = "aaa";
method.invoke(null,str);
System.out.println("aaa");
} catch (Exception e) {
e.printStackTrace();
}
}
}
class ReflectPiont{
private static void printStr(String str) {
// TODO Auto-generated method stub
System.out.println(str);
}
}
复制代码
java.lang.NoSuchMethodException: com.itheima.ReflectPiont.printStr(java.lang.String)
at java.lang.Class.getMethod(Unknown Source)
at com.itheima.Test7.main(Test7.java:14)
这是怎么出错的
作者:
杨庆雷
时间:
2014-8-8 02:32
本帖最后由 杨庆雷 于 2014-8-8 02:35 编辑
public class Test {
public static void main(String[] args) {
try {
Test test = Test.class.newInstance();
Method method = test.getClass().getMethod("printStr");
method.invoke(test);
} catch (Exception e) {
e.printStackTrace();
}
}
private void printStr() {
// TODO Auto-generated method stub
System.out.println("aaa");
}
}
复制代码
原因找到了 把private void printStr()改为public void printStr()
作者:
阿磊
时间:
2014-8-8 08:45
呵呵 测试题吧
作者:
justin1258
时间:
2014-8-8 09:42
getMethod是获取公共成员,你用getDeclaredMethod可以获取在这个类你面定义的所有方法。
作者:
lspooooo
时间:
2014-8-8 16:45
getDeclaredMethod获取声明你的方法:也就是能够获取一个类中的所有方法
getMethod只能获取一个类中的公共方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2