java 面向对象(三十七):反射 反射的概述

Posted 秋华

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 面向对象(三十七):反射 反射的概述相关的知识,希望对你有一定的参考价值。

1.本章的主要内容

 

 

2.关于反射的理解

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

框架 = 反射 + 注解 + 设计模式。

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

//体会反射的动态性
@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();
}

4.反射机制能提供的功能

 

 

5.相关API

java.lang.Class:反射的源头
java.lang.reflect.Method
java.lang.reflect.Field
java.lang.reflect.Constructor
....

以上是关于java 面向对象(三十七):反射 反射的概述的主要内容,如果未能解决你的问题,请参考以下文章

第三十四篇 Python面向对象之 反射(自省)

java 面向对象(三十八):反射 Class类的理解与获取Class的实例

python全栈开发第十七篇面向对象反射和内置方法

第二十七天反射和面向对像中的内置函数

跟着刚哥梳理java知识点——反射和代理(十七)

JavaEE基础(二十七)/反射JDK新特性