Java基础-反射(1)

反射的概述:

关于反射的理解

被视为动态语言的关键,反射机制允许程序性在执行时借助于Refiection 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

....

这是我所学到的java,所以我要分享给你们,希望可以帮助到你们。

以上就是我的分享,新手上道,请多多指教。如果有更好的方法或不懂得地方欢迎在评论区教导

和提问喔!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值