java中反射作用 易懂!

1.什么是反射

Java中反射的意思是是在运行状态中,对于任何一个类,我们都能够知道这个类有哪些方法和属性。对于任何一个对象,我们都能够对它的方法和属性进行调用。我们把这种动态获取对象信息和调用对象方法的功能称之为反射机制。

2.如何得到反射对象

为了演示我这里创建个一个学生的实体类,其中封装了属性,创建了构造函数,还有个测试类
在这里插入图片描述

		//1.通过类名获取要反射的对象
		Class stu = Student.class;
		System.out.println("通过类名获取要反射的对象"+stu);
		//2.使用new对象获取要反射的对象
		Class stu2 = new Student().getClass();
		System.out.println("使用new对象获取要反射的对象"+stu2);
		//3.通过路径获取要反射对象
		Class stu3 = Class.forName("com.reflectionuse.Student");
		System.out.println("通过路径获取要反射对象"+stu3);
		//输出类的昵称
		System.out.println("类的昵称"+stu.getSimpleName());

这样我们就得到了反射对象,为了一些不必要的麻烦最好创建一个无参构造函数

		//获取反射对象的修饰符,Final等
		int mod = stu.getModifiers();
		if(Modifier.isFinal(mod)){
			System.out.println("Final是");
		}else{
			System.out.println("Final否");
		}
		if(Modifier.isPublic(mod)){
			System.out.println("Public是");
		}else{
			System.out.println("Public否");
		}

运行结果:
在这里插入图片描述
getModifiers它返回的是int类型的,可以对照一下
在这里插入图片描述

我们可以按住CTRL点击Modifier进源码看一下返回的是boolean类型的,还有很多这里就不多介绍了大家可以自己去研究一下
在这里插入图片描述

	Constructor[] con = stu.getConstructors();
		for (Constructor str : con) {
			//注意这里是获取带参构造函数中参数类型
			Class[] parameter = str.getParameterTypes();
			for (Class c : parameter) {
				System.out.println("参数类型为"+c.getSimpleName());//获取参数类型
			}
		}

运行结果:
在这里插入图片描述
还有许多这里没有讲到,有时间大家可以自己去试一下,谢谢观看!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值