Reflection也就是反射是Java被视为动态(或准动态)语言的一个性质
反射机制指的是程序在运行时能够获取任何类的内部所有信息,并对其操作(包括私有属性)
class对象概述
class其实就是类的类型
字符串类型就是String,整形类型就是Integer,String和Integer类型就是Class
方法名 |
作用 |
getName() |
获得类中完整名称 |
getDeclaredFields() |
获得类中所有属性 |
getDeclareMethods() |
获得类中所有方法 |
getConstructors() |
获得类构造方法 |
newInstance() |
实例化类对象 |
获得类对象的三种方法
Field
java.lang.reflect.Field类,是用于表示类中、接口中属性对象的类
可以操作类中私有,以及共有等全部属性和属性的信息
方法名 |
作用 |
getName() |
获得属性名称 |
getType() |
获得属性类型 |
get(Object obj) |
获得obj对象这个属性值 |
set(Object obj,Object value) |
向obj对象中这个属性赋值value |
setAccessible(true) |
启用/禁用访问控制权 |
获取类中属性
Method
java.lang.reflect.Method类用于表示类中、接口中方法对象的类
可以操作类中私有、以及公共等全部方法
方法名 |
作用 |
getName() |
获得方法名称 |
getReturnType() |
获得方法返回值类型 |
invoke(Object obj,Object… args) |
利用obj对象调用该方法 |
getParamterTypes() |
获得方法所有参数类型,按照顺序返回Class数组getDeclaredAn |
getDeclaredAnnotations() |
获取方法的全部注解 |
获取类中方法
利用反射机制实现Excel导入导出
如果有一个图书管理系统的项目,要求实现图书信息导入导出、用户信息导入导出、借阅信息导入导出、维护信息导入导出、管理员信息导入导出等等,一个导入导出只需要两个方法,如果这么多都要写的话就显得有点浪费精力与时间了,那么我们可以利用反射来编写一个万能的导入导出方法
ExcleUtil.java
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!