您现在的位置是:课程教程文章
java反射是什么
2023-12-15 21:07课程教程文章 人已围观
-
web前端后端数据库全套课程(web前端,my
web前端后端数据库全套课程(web前端,my... -
线程池面试10连问,不了解底层,一定答
线程池面试10连问,不了解底层,一定答我们的多线程课程都 可以有条件免费领取 ,欢迎扫码添加京东架构师黄老邪微... -
CRMEB_Java2.0_本地开发环境搭建指南
CRMEB_Java2.0_本地开发环境搭建指南本视频由CRMEB推出,CRMEB是西安众邦网络科技有限公司旗下的一款产品,西安众... -
八天Java课程 大数据必学课
八天Java课程 大数据必学课本套Java课程为大数据架构师课程的JavaSE、MySQL、JDBC课程, 大数据的开发离不开...
当我们要使用某一种类时,在之前就知道它的使用方法。如果对类的方法不了解,又想要实现其功能时,我们可以借助反射来实现。这种方法在程序运行时才能知道对用的类,下面我们就反射的概念、使用场景、优点进行介绍,然后以Student类为例,在实例中体会反射神奇的用法。
1.反射概念
反射就是在运行时才知道要操作的类是什么,并且可以在运行时获取类的完整构造,并调用对应的方法。
2.使用场景
IDE自动提示功能,对象(提示:属性、方法)
不知道类或者对象的具体信息,应该使用反射来实现。
比如类的名称放在XML文件中,属性和属性值放在XML文件中,需要在运行时读取XML文件,动态获取类的信息。
3.优点
通过反射,java可以动态的加载未知的外部配置对象,临时生成字节码进行加载使用,使代码更灵活,极大地提高应用的扩展性。
4.实例
先写一个Student类。
获取Class对象的三种方式
Object ——> getClass();
任何数据类型(包括基本数据类型)都有一个“静态”的class属性
通过Class类的静态方法:forName(String className)(常用)
Object类中的getClass方法、因为所有类都继承Object类。从而调用Object类来获取
package fanshe; /** * 获取Class对象的三种方式 * 1 Object ——> getClass(); * 2 任何数据类型(包括基本数据类型)都有一个“静态”的class属性 * 3 通过Class类的静态方法:forName(String className)(常用) * */ public class Fanshe { public static void main(String[] args) { //第一种方式获取Class对象 Student stu1 = new Student();//这一new 产生一个Student对象,一个Class对象。 Class stuClass = stu1.getClass();//获取Class对象 System.out.println(stuClass.getName()); //第二种方式获取Class对象 Class stuClass2 = Student.class; System.out.println(stuClass == stuClass2);//判断第一种方式获取的Class对象和第二种方式获取的是否是同一个 //第三种方式获取Class对象 try { Class stuClass3 = Class.forName("fanshe.Student");//注意此字符串必须是真实路径,就是带包名的类路径,包名.类名 System.out.println(stuClass3 == stuClass2);//判断三种方式是否获取的是同一个Class对象 } catch (ClassNotFoundException e) { e.printStackTrace(); } } }
以上就是java反射的基础知识介绍,当我们对某一种类的方法不明确时,可以借用反射的方法来实现类的功能。对于一些刚学java的初学者来说,反射的使用非常友好,可以快速调用类方法。
课程教程:java反射是什么上一篇:js数字转换成字符串
下一篇:没有了