java反射构建一个类_【软件工程】JAVA反射技术

本文介绍了Java反射技术的应用,包括通过全限定名构建对象、调用带有参数的构造方法。Java反射使得程序具备更强的灵活性和可配置性,如Spring IoC的实现基础。文中详细讲解了如何利用反射创建无参和有参构造方法的对象,并提供了相关代码示例。
摘要由CSDN通过智能技术生成

JAVA反射技术

Java 反射技术应用广泛,它能够配置:类的全限定名、方法和参数,完成对象的初始化,甚至是反射某些方法。这样就可以大大增强 Java 的可配置’性, pring IoC 的基本原理也是如此,当然 Spring IoC 的代码要复杂得多。

Java 的反射内容繁多,包括对象构建、反射方法、注解、参数、接口等。

通过反射构建对象

Java 中允许通过反射配置信息构建对象,比如 ReflectServicelmpl.java

c7bf09600287892cbcd616b1e41b3aa2.png

然后通过反射的方法去构建它

747ef6d5b72a11a1897e5dd101a2b275.png

这里的代码就是生成一个对象,然后将其返回。下面这行代码的目的就是给类加载器注册了一个类 ReflectServicelmpl 的全限定名,然后通过 newInstance 方法初始化了一个类对象,使用反射的方式也十分简单。

5734e5204ebe8869b30abdde9837ace9.png

这是一个构建方法,没有任何参数的类的反射生成,所以还剩下一个问题,即如果个类的所有构建方法里都至少存在一个参数,如何用反射构建它

f8bf17205c756a5651b226afdd84f1b8.png

这里实现了含 个参数的构建方法 将不能用之前的办法将其反射生成对象

546abc1d8d7942d0893589f7d4d28d6d.png

先通过 forName 加载到类的加载器。然后通过 getConstructor 方法,它的参数可以是多个,这里定义为 String.class ,意为有且只有一个参数类型 String 的构建方法。通过这个方法可以对重名方法进行排除,此时再用 newInstance 方法生成对象 只是newInstance方法也多了一个参数“张三 ”而已。实际就等于 object new ReflectServicelmpl2(”张三”),是这里用反射机制来生成这个对象而已。

反射方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值