使用反射调用构造器

本文介绍了如何通过反射机制获取并调用Java类的构造器。首先,需要获取类的字节码对象,然后使用`getConstructor()`或`getDeclaredConstructor()`方法获取构造器。反射调用构造器的主要用途是在框架中,由于提供的参数通常是字符串,无法直接使用`new`关键字创建对象。此外,对于私有的构造器,还需调用`setAccessible(true)`进行访问。
摘要由CSDN通过智能技术生成

通过反射来获取某一个类的构造器可以分两步:
1.获取该类的字节码对象 (可参考文章 反射机制  )
2.从该字节码对象中去找需要获取的构造器(查看API文档)

获取所有构造器有两个方法:

1.getConstructor():获取当前Class所表示类的所有public方法

2.getDeclaredConstructor():获取所有构造器

 

获取指定的一个构造器的方法:

我们知道构造方法的方法名是与类名相同的,所以不能通过方法名来区分各个方法。在调用构造方法时候是用参数类型,参数个数等区分的,那这里也同样。


import java.lang.reflect.Constructor;

class User {
	public User() {

	}

	public User(String name) {

	}

	private User(String name, int age) {

	}
}

// 获取构造器
public class GetConstructorDemo {
	public static void main(String[] args) throws NoSuchMethodException, SecurityException {
		// getAll();
		getOne();
	}

	// 获取指定的一个构造器
	private static void getOne() throws NoSuchMethodException, SecurityException {
		// 1.获取构造器所在类的字节码对象
		Class<U
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值