Java基础---反射

反射:框架设计的灵魂

  • 框架:半成品软件,可以在框架的基础上进行软件开发,简化编码
  • 反射: 将类的各个组成部分封装为其他对象,这就是反射机制

    • 好处:

      1. 可以在程序运行过程中,操作这些对象。
      2. 可以解耦,提高程序的可扩展性。

反射

获取class对象的方式

1.Class. forName("全类名"):将字节码文件加载进内存,返回Class对象

  • 多用于配置文件,将类名定义在配置文件中。读取文件,加载类

2.类名.class:通过类名的属性class获取

  • 多用于参数的传递

3.对象, getclass(): getclass()方法在 object类中定义着。

  • 多用于对象的获取字节码的方式

结论
同一个字节码文件(*.c1ass)在一次程序运行过程中,只会被加载一次,不论通过哪一种方式获取的Class对象都是同一个。

Class对象功能

获取功能

1.获取成员变量们
Field[ getFields()
Field getField(string name)
Field[] getDeelaredFields()
Field getDeclaredField(string name)
2.获取构造方法们
Constructor<?>[] getconstructors()
Constructor<T> getconstructor (类<?>.. parameterTypes)
Constructor<T> getDeclaredconstructor(类<?>.. parameterTypes)
Constructor<?>[] getDeclacedconstructors
3.获取成员方法们
Method[ getMethods()
Method getMethod (string name, 类<?>... parameterTypes)
Method[] getDeclaredMethods()
Method getDeclacedMethod (String name, 类<?>... parameterTypes)
4.获取类名
String getName()

Field:成员变量

1.设置值
void set(object obj, object value)
2.获取值
get(object obj)
3.忽略访问权限修饰符的安全检查
setAccessible(true):暴力反射

Constructor:构造方法

  • 创建对象
    T newInstance(object., initargs)
  • 如果使用空参数构造方法创建对象,操作可以简化: Class对象的 newInstance方法
  • Method:方法对象
  • 执行方法:
    object invoke(object obj, object., args)
  • 获取方法名称:
    String getName:获取方法名
最后修改:2019 年 02 月 19 日 08 : 51 AM
如果觉得我的文章对你有用,请随意赞赏

发表评论

3 条评论

  1. 心语难诉

    不会Java的前端不是好运维。

  2. 攸一软件网

    看不懂 哈哈⌇●﹏●⌇

  3. 左岸

    元宵节快乐啊OωO