反射笔记

java反射是什么呢?Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。而这也是Java被视为动态(或准动态,为啥要说是准动态,因为一般而言的动态语言定义是程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言。
那java反射能做什么呢?我们现在知道反射机制是允许程序在运行时取得一个已知名称的class的内部信息,包括包括其修饰符,属性,方法等,并可于运行时改变属性内容或调用方法。让我们可以更灵活的编写代码,代码可以在运行时降低代码的耦合度;但是要注意的是反射使用不当会造成高资源消耗
一个类在 JVM 中只会有一个 Class 实例,我们查阅 API 可以看到 Class 有很多方法:
  getName():获得类的完整名字。
  getFields():获得类的public类型的属性。
  getDeclaredFields():获得类的所有属性。包括private 声明的和继承类
  getMethods():获得类的public类型的方法。
  getDeclaredMethods():获得类的所有方法。包括private 声明的和继承类
  getMethod(String name, Class[] parameterTypes):获得类的特定方法,name参数指定方法的名字,parameterTypes 参数指定方法的参数类型。
  getConstructors():获得类的public类型的构造方法。
  getConstructor(Class[] parameterTypes):获得类的特定构造方法,parameterTypes 参数指定构造方法的参数类型。
  newInstance():通过类的不带参数的构造方法创建这个类的一个对象。
posted @ 2020-10-12 14:00  九觅  阅读(53)  评论(0)    收藏  举报