温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2021-07-01 15:31:13 来源:亿速云 阅读:138 作者:Leah 栏目:编程语言

这篇文章给大家介绍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中怎么实现类的反射机制就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI