java中反射机制的作用有哪些

  介绍

本篇文章为大家展示了java中反射机制的作用有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

java的特点有哪些

java的特点有哪些   1. java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。   2. java具有简单性,面向对象,分布式、安全性,平台独立与可移植性,动态性等特点。   3 .使用Java可以编写桌面应用程序,网络应用程序,分布式系统和嵌入式系统应用程序等。

什么是反射?

要想知道反射到底是什么,首先需要知道Java的类加载和对象创建的机制。

当我们写完一个Java文件的时候,后缀是. Java。在我们利用IDE执行Java文件的时候,其实IDE也帮我们运行了javac,即Java编译器。编译器会将. Java文件编译成. Class文件. Java虚拟机会去读取. Class文件。这时候,类加载器类加载器会将这些类,以及该Java文件导入的类加载到JVM中的方法区。这些被加载的类的类型都是类,习惯称之为类对象。

对象的创建,即是根据这些类类对象,在堆区创建对象。

这时候,反射就很好理解了。反射的目的就是获取这些类类对象

反射的方式

目前我知道可以利用反射返回类对象的方式有四种:

1。如果你知道类的路径:

Class  aclass =, forname(“类的路径“),,//如java.util.ArrayList,你就可以获得ArrayList的类对象以前

2。如果你知道类:

Class  aclass =, ArrayList.class;

3。如果你实例化对象:

ArrayList, array =, new  ArrayList ();   Class  aclass =, array.getClass ();

4。通过类加载器加载(一个人不经常用忘记了终极战士)

类对象类的用法

获得类类对象,我们可以非常轻松的获取到该类的字段和方法,我们甚至可以得到该类的父类:如:getMethod getConstructor…就是获取类对象的方法,构造器等等,这些可以去网上查到相应的资料,这里不做赘述。

我们得到了类类对象,我们就可以利用类类对象创建一个对象实例了!这里就是工厂模式的利用方法,将所有类创建的工作交给工厂类实现,并将创建的对象返回即可。这样就能方便管理对象创建的工作,利用反射,创建对象的例子:

//利用反射机制创建一个ArrayList的对象   Class  aclass =, forname (“java.util.ArrayList");,//依靠反射,获取ArrayList的类对象   ArrayList

什么是动态加载?

之前我也不知道什么是静态加载,什么是动态加载,看了一个人的博客豁然开朗:点击连接

他说的很清楚了:java中的新的方法是静态加载,因为新的方法是在编译阶段就会检查,而不是在运行阶段。反射是可以在运行时创建对象,调用对象的方法,变量等。

该博客作者利用了两个例子进行诠释

静态加载:

//定义接口   interface  OfficeAble {   ,public  void 开始();   }//主   {class 办公室   ,public  static  void  main (String [], args) {   ,如果(args [0] .equals (“Word")) {   Word 才能;w =, new 词();   w.start才能();   ,}   ,如果(args [0] .equals (“Excel")) {   Excel 才能;e =, new  Excel ();   e.start才能();   ,}   ,}//字类   class  Word  implements  officeAble {   ,public  void  start () {   ,System.out.println(时“Word );   以前,}

这样会报错。静态加载会在编译阶段将类类对象加载进方法区,因为这里没有定义Excel类,编译器就会报错。

动态加载:

//接口和单词类同上,修改一下主要的方法   {class 办公室   ,public  static  void  main (String [], args) {   ,尝试{   Class 才能;c =, forname (args [0]);   OfficeAble 才能;oa =, (OfficeAble) c.newInstance ();   oa.start才能();   ,}   ,抓住(Exception  e) {   e.printStackTrace才能();   ,}   ,   ,}

上述内容就是java中反射机制的作用有哪些,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

java中反射机制的作用有哪些