zoukankan      html  css  js  c++  java
  • 反射的概述

    导图

    关于反射的理解

    Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何
    类的内部信息,并能直接操作任意对象的内部属性及方法。
    
    框架 = 反射 + 注解 + 设计模式。
    

    体会反射机制的“动态性”

    //体会反射的动态性
    @Test
    public void test2(){
    
        for(int i = 0;i < 100;i++){
            int num = new Random().nextInt(3);//0,1,2
            String classPath = "";
            switch(num){
                case 0:
                    classPath = "java.util.Date";
                    break;
                case 1:
                    classPath = "java.lang.Object";
                    break;
                case 2:
                    classPath = "com.atguigu.java.Person";
                    break;
            }
    
            try {
                Object obj = getInstance(classPath);
                System.out.println(obj);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    
    
    }
    
    
    /*
    创建一个指定类的对象。
    classPath:指定类的全类名
     */
    public Object getInstance(String classPath) throws Exception {
       Class clazz =  Class.forName(classPath);
       return clazz.newInstance();
    }
    

    反射机制能提供的功能

    相关API

    java.lang.Class:反射的源头
    java.lang.reflect.Method
    java.lang.reflect.Field
    java.lang.reflect.Constructor
    ....
    
  • 相关阅读:
    1099. Build A Binary Search Tree (30)
    两个新事物
    time.h
    Nohup命令
    进程锁
    C++中虚析构函数的作用
    c++ 修改stl set中的元素
    STL迭代器辅助函数——advance
    CTreeCtrl 控件使用总结
    关于stl advance函数移动步数超过容器大小(越界)的研究
  • 原文地址:https://www.cnblogs.com/Krisone/p/13150307.html
Copyright © 2011-2022 走看看