Class提供的获取类构造器的方法以及获取类构造器的作用

代码:掌握获取类的构造器,并对其进行操作
Cat类
package com.itheima.day9_reflect;public class Cat {private String name;private int age;private Cat(String name, int age) {this.name = name;this.age = age;System.out.println("有参数构造器执行了~~");}private Cat() {System.out.println("无参数构造器执行了~~");}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;}@Overridepublic String toString() {return "Cat{" +"name='" + name + '\'' +", age=" + age +'}';}
}
Test2Constructor类(主程序)
package com.itheima.day9_reflect;import org.junit.Test;import java.lang.reflect.Constructor;
public class Test2Constructor {@Testpublic void testGetConstructors() throws Exception {Class c = Cat.class;Constructor[] constructors = c.getDeclaredConstructors();for (Constructor constructor : constructors) {System.out.println(constructor.getName()+"====>"+constructor.getParameterCount());}}@Testpublic void testGetConstructor() throws Exception {Class c = Cat.class;Constructor constructor1 = c.getDeclaredConstructor();System.out.println(constructor1.getName()+"====>"+constructor1.getParameterCount());constructor1.setAccessible(true);Cat cat = (Cat) constructor1.newInstance();System.out.println(cat);Constructor constructor2 = c.getDeclaredConstructor(String.class, int.class);System.out.println(constructor2.getName()+"====>"+constructor2.getParameterCount());constructor2.setAccessible(true);Cat cat2 = (Cat) constructor2.newInstance("叮当猫",3);System.out.println(cat2);}
}
