package com;
import java.lang.reflect.Constructor;
//Constructor(构造器对象)
public class Damo3 {
//使用构造器的方式
public static void main(String[] args) throws Exception{
Class clazz=Dog.class;
//获取所有的构造函数
Constructor[] cs=clazz.getConstructors();
//获取参数的个数
for (int i = 0; i < cs.length; i++) {
int count=cs[i].getParameterCount();
//如果构造函数的参数为0,不为0
if (count==0) {
//使用构造函数来实例化
Dog dog=(Dog) cs[i].newInstance();
dog.bark();
}else {
Dog dog=(Dog) cs[i].newInstance("花花");
dog.bark();
}
}
//获取指定的构造函数
//获取无参数构造函数
Constructor c1=clazz.getConstructor();
c1.newInstance();
//获取有参数的构造函数
Constructor c2=clazz.getConstructor(String.class);
c2.newInstance("啊~哦~昂~啊~");//实参
}
}
class Dog{
private String name="无参构造函数";
public Dog() {
System.out.println(" i am 帅炸天");
}
private Dog(int i) {
}
public Dog(String name) {
System.out.println(" i am "+name);
}
public void bark() {
System.out.println(this.name+"淫叫");
}
}
java 反射(构造器对象)
最新推荐文章于 2022-03-27 22:08:17 发布