反射

简介: 何为反射?在运行状态时,对于任何一个类,都能够动态获取这个类得所有方法和属性(私有,公有,受保护),都能够调用任意一个方法和属性。

何为反射?


  运行状态时,对于任何一个类,都能够动态获取这个类得所有方法和属性(私有,公有,受保护),都能够调用任意一个方法和属性。


   要想获取一个类的成员变量 , 成员方法 , 构造函数 , 类名等 ,必须先获取这个类的类类型(.class)


  反射操作都是编译完成后的操作(编译为字节码(.class)文件后的操作),也就是运行时刻的操作


1.Class的表示


万事万物都是对象(数据类型有包装类 ,普通类(class) 也是对象 , 是Java.lang.Class的对象)


任何一个类都是Java.lang.Class 的实例对象




2,动态加载类(第三种加载方式为动态加载)


运行时加载 (想加载哪个就加载那个,互不干扰)


编译时加载(当程序代码在编译的时候,加载到new的时候,因为new是静态加载类,所以需要加载完所有new了的对象才能顺利运行,如果有一个对象没有new , 那整个程序都不能运行,这样就会变得不灵活,假如我只想用特定得一个类,而不用其他得类,这样就不行,所以应该用动态加载类)


编译时的加载类为静态加载类,运行时的加载类为动态加载类


3.获取方法信息


任何事物都是对象,int ,void String double......都是对象


获取Student的成员变量,函数,构造方法,类名






调用一个类中的方法





4.通过反射真正的了解集合的泛型


  集合的泛型是防止错误输入,约束输入的类型,在编译时有效,在编译之后就无效了,可以通过反射跳过泛型

目录
相关文章
|
6月前
|
缓存 安全 Java
反射带来的问题
反射带来的问题
41 0
|
6月前
|
存储 缓存
优美的使用反射,哪些场景推荐使用反射,哪些不推荐使用
优美的使用反射,哪些场景推荐使用反射,哪些不推荐使用
56 0
|
9月前
|
API C# 数据库
C#反射详解
C#反射详解
88 0
|
Java 数据库连接 数据库
JVAVEE反射
JVAVEE反射
62 0
|
安全 数据可视化 IDE
反射(二)什么是反射
反射(二)什么是反射
107 0
|
存储 Java 索引
反射理解
个人对反射的学习理解与代码
80 0
|
设计模式 安全 Java
一起来学反射(下)
一起来学反射
109 0
|
缓存 前端开发 JavaScript
一起来学反射(上)
一起来学反射
116 0