java反射调用构造函数_java反射创建类会调用构造函数吗

本文通过实例证明了在Java中,使用反射创建对象时,确实会调用构造函数,无论是否显式指定。作者强调了即使只有一个有参构造函数,反射实例化也会执行相应的构造过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先说答案:肯定是调用的

背景

今天在群里看到一个人问问题,说自己的反射创建类为什么没有走构造函数,然后群里就有个人说反射不走构造函数,这个回答肯定是错的,可能他的意思是不走他的有参构造函数,因为问问题人写的类中只有一个有参构造。我们不过分揣摩,先写个例子证明是走构造函数的。

直接上代码

我们先写一个简单的类User

public class User {

private String name;

private Integer age;

public User() {

System.out.println("无参");

}

public User(String name, Integer age) {

System.out.println("有参");

this.name = name;

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

}

我们这里分别给一个无参,一个有参的构造函数,无参必须要有的,不然发射的时候出报错。

下面测试一下

User user = User.class.getConstructor(String.class,Integer.class).newInstance("张三",12);

User user2 = User.class.newInstance();

运行结果是

有参

无参

我们可以看到是输出个构造函数中的输出字符的,所以反射创建类是会走构造函数的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值