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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程序爱好者 中级黑马   /  2014-5-4 17:15  /  1000 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 程序爱好者 于 2014-5-5 17:13 编辑

创建实例对象:
        反射方式:String str=(String)constructor.newInstance(new StringBuffter(“abc”)); //这句怎么理解
Class.newInstance()方法:
        例子:String obj=(String)Class.forName(“java.lang.String”).newInstance();//这句又怎么理解
看了张孝祥的视频中提到这两句  不懂怎么理解

2 个回复

倒序浏览
  1. String str=(String)constructor.newInstance(new StringBuffter(“abc”));
复制代码

这句代码是通过反射方式调用String类一个有参的构造函数来创建一个String对象。相当于调用String的这个构造函数。
  1. public String(StringBuffer sb){
  2.       XXXXXX
  3. }
复制代码

  1. String obj=(String)Class.forName(“java.lang.String”).newInstance();
复制代码

Class.forName(“java.lang.String”)这句得到String的一份类字节,再通过调用.newInstance()来反射得到一个String对象,注意调用.newInstance()时,没有参数,则相当于调用了String类的这个构造函数。
  1. public String(){
  2.   XXXXXX
  3. }
复制代码


你所写的两句代码创建出来的String对象是不一样的。

评分

参与人数 1技术分 +1 收起 理由
天涯追梦 + 1

查看全部评分

回复 使用道具 举报
创建实例对象:
        反射方式:String str=(String)constructor.newInstance(new StringBuffter(“abc”)); //这句怎么理解
通过String类的带字符串参数的构造函数创建带参数的String对象,相当于在反射中调用带字符串参数的构造函数

       例子:String obj=(String)Class.forName(“java.lang.String”).newInstance();//这句又怎么理解
通过类名获取字节码文件,调用空参构造函数创建String对象
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马