反射中getConstructors与getDeclaredConstructors的区别

本文详细介绍了Java反射中getConstructors和getDeclaredConstructors的区别,前者获取公共构造器,后者获取所有构造器。通过示例代码展示了如何使用这两个方法来实例化类的对象,并打印出类的所有构造器。
摘要由CSDN通过智能技术生成

1.反射中getConstructors与getDeclaredConstructors的区别?

区别是getConstructors只返回公共构造函数,而getDeclaredConstructors返回所有的构造函数(public,protected,default(package)access和private)

2.代码演示

//创建实体类

public class User {
private int age;
private String name;
public User(int age, String name) {
super();
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public User() {
super();
}

}
public class Item {
public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, SecurityException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
// TODO Auto-generated method stub
Method05();
}
private static void Method05() throws ClassNotFoundException, NoSuchMethodException, SecurityException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
//根据指定的文件路径返回一个Class对象
Class cls = Class.forName(“cn.yunhe.fanShe.User”);
//指定获取带有两个参数的构造器,要指定参类型、参数的位置、参数的个数
Constructor cons = cls.getConstructor(int.class,String.class);
// 通过这个构造器对象创建实体类对象
User user = (User)cons.newInstance(15,“嘻嘻”);
System.out.println(user);

}

在这里插入图片描述
public static void method03() throws ClassNotFoundException {
Class cls = Class.forName(“cn.yunhe.fanShe.User”);
//获取类中构造器
Constructor[] constructors = cls.getDeclaredConstructors();
for(Constructor constructor:constructors) {
System.out.println(constructor);
}
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值