黑马程序员技术交流社区

标题: 反射-Method部分的一个小程序,报了异常,求解决 [打印本页]

作者: wata    时间: 2015-1-17 00:04
标题: 反射-Method部分的一个小程序,报了异常,求解决
本帖最后由 wata 于 2015-1-17 00:07 编辑
  1. /**
  2.          * 需求:
  3.          * 用用Method字节码执行String str = "abc"; str.CharAt(1);
  4.          *
  5.          * 步骤:
  6.          * 1,获取String类charAt(int index)方法的Method字节码
  7.          * 2,用Method字节码执行Str.CharAt(1);
  8.          * 3,打印结果
  9.          */
  10.         public static void reflectMethod() throws Exception{
  11.                 String str = new String("abc");
  12.                
  13.                 //获取String类charAt(int index)方法的Method字节码
  14.                 Method methodCharAt = String.class.getMethod("CharAt", int.class);
  15.                
  16.                 //用Method字节码执行Str.CharAt(1),并打印结果
  17.                 System.out.println(methodCharAt.invoke(str, 1));
  18.                         /*
  19.                          * Object invoke(Object obj, Object... args) :
  20.                          *                 对指定对象调用由此 Method 对象表示的方法。
  21.                          *
  22.                          * obj - 从中调用底层方法的对象
  23.                          * args - 用于方法调用的参数  
  24.                          */
  25.         }
复制代码


报的异常是:java.lang.NoSuchMethodException: java.lang.String.CharAt(int)

我哪里写错了?求解决!!!
--------------------------------------

汗。。。我解决了

我把CharAt中的c大写了,应该是:Method methodCharAt = String.class.getMethod("charAt", int.class);


==!





作者: 空白Top    时间: 2015-1-17 00:14
bing构  哈哈  好像都是第二个字母开始大写
第一个都是小写的 比如 indexOf 之类的
作者: Smart_lll    时间: 2015-1-19 16:23
毕老师说的基本命名规则可以解决这一问题,我以前也总写错。。。
作者: 志ぁ才☆博ぁ成    时间: 2015-1-19 22:44
写程序时的最头痛的就是大小写和中英文切换问题。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2