反射

JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制

  • 框架

好处:

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

批注 2019-11-01 151447

  • 使用反射创建对象
String s = String.class.getConstructor(String.class).newInstance("str");

关键类

批注 2019-11-03 160316

Class

  • cast:对象转型
  • isInstance:类型确认
  • isAssignableFrom:是否从某个类派生
CharSequence.class.isAssignableFrom(String.class)

类型的比较可以通过 instanceof 或者 isInstance接口来进行 这两个接口的比较是有考虑继承关系。

另外一种比较可以通过比较两个class对象,这种方式没有考虑继承关系。

应用

  • 加载JDBC驱动
  • 任意类型数组扩容
  • 动态方法调用
  • JSON序列化与反序列化
  • Servlet创建
  • ORM
  • Bean容器

JAVA反射增强

org.reflections

功能

  • get all subtypes of some type
  • get all types/members annotated with some annotation
  • get all resources matching a regular expression
  • get all methods with specific signature including parameters, parameter annotations and return type

results matching " "

No results matching " "

results matching " "

No results matching " "