黑马程序员技术交流社区

标题: 关于反射的小问题 [打印本页]

作者: 王峰峰    时间: 2014-4-5 10:09
标题: 关于反射的小问题
请问大家,这个程序哪儿不合适,存在异常。。。
  1. import java.lang.reflect.Method;

  2. public class Test01 {
  3.         public static void main(String[] args) throws Exception{
  4.                 String str = "abcabc" ;
  5.                 //取得Stirng类中的replace方法
  6.                 Method method = String.class.getMethod("replace", String.class,String.class) ;
  7.                 //替换str中的c为d并打印
  8.                 System.out.println(method.invoke(str, "c","d")) ;               
  9.         }
  10. }
复制代码

作者: 郭黎明    时间: 2014-4-5 10:27
public class Test01 {
        public static void main(String[] args) throws Exception{
                String str = "abcabc" ;
                Method method = String.class.getMethod("replace",char.class,char.class) ;  //这个地方的参数要是char类型的
                System.out.println(method.invoke(str, 'c','d')) ; //这个地方也要改为char类型               
        }
字符串的每一个字母都是char类型,利用反射得到replace方法时就要在方法中传入char的字节码,在method.invoke(str, 'c','d')时字母因为是char类型所以要单引号
作者: yuon11937    时间: 2014-4-5 10:29
你要替换的是字符,不是字符串,replace方法接受的两个参数是,char类型的。replaceAll接受的两个参数才是String类型,你在看看API文档。




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