您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
09_反射_Class对象功能_获取Constructor
发布时间:2022-07-04 21:22:07编辑:雪饮阅读()
这次先要在Person类中新建一个toString方法,便于接下来的获取Constructor及实例化时候不同的方式实例化出来的结果的展示。
package day1.reflection;
public class Person {
//按权限修饰符顺序权限大小分别定义几个变量
public String a;
protected String b;
//缺省修饰是仅仅在本包和本类,其子类都不支持
String c;
private String d;
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public Person(String name) {
this.name = name;
}
public Person() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"a='" + a + '\'' +
", b='" + b + '\'' +
", c='" + c + '\'' +
", d='" + d + '\'' +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
然后在main入口所在java中获取Person的Constructor并实例化的几种示例如:
package day1.reflection;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
public class index {
public static void main(String[] args) throws Exception{
//获取构造器
Constructor constructor1=Person.class.getConstructor();
//构造对象
Person p1=(Person)constructor1.newInstance();
//获取带参构造器
Constructor constructor2=Person.class.getConstructor(String.class,int.class);
//构造对象
Person p2=(Person)constructor2.newInstance("kasumi",24);
//无参构造器可以简化获取直接构造对象
Person p3=Person.class.newInstance();
System.out.println(p1);
System.out.println(p2);
System.out.println(p3);
}
}
输出的运行结果如:
Person{a='null', b='null', c='null', d='null', name='null', age=0}
Person{a='null', b='null', c='null', d='null', name='kasumi', age=24}
Person{a='null', b='null', c='null', d='null', name='null', age=0}
Process finished with exit code 0
关键字词:java,反射,Constructor