A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 傅宇 于 2013-3-13 13:18 编辑
  1. import java.lang.reflect.Constructor;
  2. import java.lang.reflect.InvocationTargetException;

  3. public class ts1 {
  4.         public static void main(String[] args) throws NoSuchMethodException, SecurityException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
  5.                 Constructor cons1 = String.class.getConstructor(StringBuffer.class);
  6.                 String str = (String)cons1.newInstance("abc");
  7.                 System.out.println(str.charAt(2));
  8.         }
  9. }
复制代码
为什么会报IllegalArgumentException: argument type mismatch?求解!

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

2 个回复

正序浏览
有问题的话继续追问,否则请将帖子分类改成【已解决】~
回复 使用道具 举报
本帖最后由 李易烜 于 2013-3-13 12:34 编辑

构造器constructor:
   String(StringBuffer) //这个是不对的
   String(String)  //这样就行了
  1. main(){
  2.     Class clazz = Class.forName("java.lang.StringBuffer");
  3.      String str = ((StringBuffer) clazz.newInstance()).append("abc").toString();
  4.      System.out.println(str.charAt(2));
  5.         //另外一种方式
  6.      Constructor con = String.class.getConstructor(String.class);
  7.      String str2 = (String) con.newInstance("abc");
  8.      System.out.println(str2.charAt(2));
  9. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马