• 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));
  • 相关阅读:
    代理模式
    组合模式
    yum配置文件详解
    责任链模式
    git看不到别人创建的远程分支
    学习gulpfile.babel.js随笔
    遍历数组的方法
    解决Error: ENOENT: no such file or directory, scandir 安装node-sass报错
    window对象
    Moment.js的一些用法
  • 原文地址:https://www.cnblogs.com/zhangzonghua/p/12837885.html
Copyright © 2020-2023  润新知