十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章给大家介绍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中怎么实现类的反射机制就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。