java反射 构造方法_Java反射-------构造方法的反射应用

反射其实就是把 Java中的各种成分映射成相应的Java类  。    表示Java类的Class类显然要提供一系列方法 ,这些方法用来获得Java类中 ,的一些属性 方法 包  构造方法等

这些成分分别对应着Java类   Field  Method  Constructor  Package 等类 。然后我们就可以利用获得的这些代表Java类成分的一些类的对象来实现我们想要的功能 。

编译器在编译的时候 只是进行了语法检查 并没有进行里面的饿操作 ,只看变量的定义不看代码的执行。在运行的时候才进行了相关操作

程序的开发分为编译时 和运行时     反射会议耗费时间,会导致程序性能下降

构造方法的反射应用  :

package me.Test;

import java.lang.reflect.*;//导入反射相关的类

/*下面我们通过构造方法的反射调用创建一个String对象

* 程序分为编译时和运行时 编译时进行语法检查

* 运行时进行程序的操作

* Class类也有Class对象  这个对象就是本身

* 我们可以直接调用Class类newInstance产生一个Class类的实例

* 返回的是不带参数的默认构造方法,这个构造方法可以创建一个默认的实例对象

* 例如String str=(String)Class.forName("java.lang.String").newInstance() ;

*

*/

public class ConstructorReflectTest

{

public static void main(String[] args)    throws Exception  //抛出异常给JVM

{

Constructor con=String.class.getConstructor(StringBuffer.class) ;   //通过String的Class对象返回带StringBuffer参数的构造方法对应的类

String str=(String)con.newInstance(new StringBuffer("abc")) ;//newInstance传递的参数要和构造器参数相对应

System.out.println(str.charAt(0)); //输出第一个字符

String ss=(String)Class.forName("java.lang.String").newInstance() ;//利用默认的构造方法进行构对象 这是Class类的方法

System.out.println(ss.getClass().getName());  //获得的类的名字

}

}

Class cls=Class.class.newInstance() ;  //Class的本身的是不可以调用 newInstance 错误的这里注意

System.out.println(cls==Class.class);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值