java 可以实例化一个方法_有没有办法在Java中按名称实例化一个类?

ccba3a4b5794de189ae1589d583261a9.png

一只甜甜圈

两种方式:方法1 - 仅适用于具有无参数构造函数的类如果您的类具有无参数构造函数,则可以使用该方法获取Class对象Class.forName()并使用该newInstance()方法创建实例(但请注意,此方法通常被认为是邪恶的,因为它可以破坏Java的已检查异常)。例如:Class> clazz = Class.forName("java.util.Date");Object date = clazz.newInstance();方法2如果类没有任何no-arg构造函数,也可以使用另一种更安全的方法,即查询类对象以获取其Constructor对象并newInstance()在此对象上调用方法:Class> clazz = Class.forName("com.foo.MyClass");Constructor> constructor = clazz.getConstructor(String.class, Integer.class);Object instance = constructor.newInstance("stringparam", 42);这两种方法都称为反射。您通常必须捕获可能发生的各种异常,包括以下内容:JVM无法找到或无法加载您的类您尝试实例化的类没有正确的构造函数构造函数本身引发了异常您尝试调用的构造函数不是公共的已安装安全管理器并阻止反射发生

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值