Java 反射学习

Java 的反射机制

反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有属性和方法。

Java中反射的作用

  • 在运行时判断任意一个对象所属的类。

  • 在运行时判断任意一个类所具有的成员变量和方法。

  • 在运行时任意调用一个对象的方法

  • 在运行时构造任意一个类的对象

反射的优缺点

  • 优点:
    提高了程序的灵活性和可扩展性;

  • 缺点:
    代码可读性低及可维护性
    反射代码执行的性能低
    破坏了封装性。

在业务代码中应该尽量避免使用反射。但是,作为一个合格的Java开发,也要能读懂中间件、框架中的反射代码。在有些场景下,要知道可以使用反射解决部分问题。

反射常见的用法

  • 动态代理
  • JDBC的 class.forName
  • BeanUtils 中属性值的拷贝
  • RPC 框架
  • ORM 框架
  • Spring 的 IOC 和 DI

Java 中的 Class 类和反射的关系

Java 的 Class 类是 java 反射机制的基础,通过 Class 类我们可以获得关于一个类的相关信息。

Java.lang.Class 是一个比较特殊的类,它用于封装被装入到 JVM 中的类(包括类和接口)的信息。当一个类或接口被装入 JVM 便会产生一个与之关联的 java.lang.Class 对象,可以通过这个 Class 对象对被装入类的详细信息进行访问。

在泛型为 Integer 的 List 中存放 String

代码实现

public static void test() throws Exception {
        List<Integer> list = new ArrayList<>();
        Method method = list.getClass().getMethod("add", Object.class);
        method.invoke(list, "Java反射机制实例");
        System.out.println(list.get(0));
    }

说点什么

avatar
  Subscribe  
提醒

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部