zoukankan      html  css  js  c++  java
  • java的反射机制

    1. 什么是反射

      反射就是java类中的各个部分:构造方法,成员变量,方法。 映射成一个个的java对象。即在运行状态,对于任意一个类,都能够知道这个类的所有属性和方法,并且可以调用这个类的属性和方法

    2. Class类

      想要使用反射,需要先获取操作类对应的Class对象。Class对象是由jvm加载 .class文件创建的。在Class对象中我们可以获取该类的许多基本信息

    3. 获取Class对象的3种方式

            Class dog = Dog.class;
            dog = Class.forName("com.dujie.exercise.bean.Dog");
            dog = new Dog().getClass();

    4. 简单操作

            Class<Dog> clazz = Dog.class;
            
            //获取公共的无参构造器
            Constructor<Dog> dogCon = clazz.getConstructor();
            Dog dog = dogCon.newInstance();
            //获取私有的构造器
            Constructor<Dog> dogCon2 = clazz.getDeclaredConstructor(String.class, int.class);
            dogCon2.setAccessible(true);//暴力反射
            
            Method setName = clazz.getMethod("setName", String.class);
            setName.invoke(dog, "DOG");
            
            Field name = clazz.getDeclaredField("name");
            name.setAccessible(true);
            System.out.println(name.getGenericType());
            System.out.println(name.getGenericType().equals(String.class));
  • 相关阅读:
    sql性能调优的注意项
    mybatis获取刚插入数据的ID
    mysql
    JQuery
    JS
    css
    web前端
    python爬虫
    socket编程
    python基础
  • 原文地址:https://www.cnblogs.com/zhangzonghua/p/12837885.html
Copyright © 2011-2022 走看看