java中怎么实现类的反射机制

这篇文章给大家介绍java中怎么实现类的反射机制,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

专注于为中小企业提供做网站、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业海曙免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

一、反射概念  

(1)Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取对象的各种信息。

(2)Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM。通过反射,可以在运行时动态地创建对象并调用其属性,不需要提前在编译期知道运行的对象是谁。

二、反射的使用场景  

    (1)hibernate框架的延迟加载;spring框架的IOC和AOP;数据源驱动加载Class.forName("com.MySQL.jdbc.Driver"); // 动态加载mysql驱动 

    (2) 获取Class对象的三种方式

    // 方式一: 通过Object类中的getClass()方法, 通过该类的实例

    Class c = new Object(). getClass();
    或者Class c = new Users().getClass();

    //获取,打印输出Object类的所有方法
    Arrays.asList(c.getDeclaredMethods()).forEach(System.out::println);

    // 方式二:  通过类名去获取
   Class c = Object.class;

    或者Class c = Users.class;

    //获取,打印输出Object类的所有方法
    Arrays.asList(c.getDeclaredMethods()).forEach(System.out::println);

    // 方式三: 通过类的全路径

   Class c = Class.forName("java.lang.Object");

   Class c = Class.forName("com.mysql.jdbc.Driver"); // 动态加载mysql驱动 

    //获取,打印输出Object类的所有方法
    Arrays.asList(c.getDeclaredMethods()).forEach(System.out::println);

关于java中怎么实现类的反射机制就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


分享标题:java中怎么实现类的反射机制
网页网址:http://hbruida.cn/article/jccgpc.html