101.【JAVA编程】反射

public class ReflectDemo {

    public static void main(String[] args)throws Exception {
        Class clazz = Class.forName("com.abyiyi.reflect.Person");
        Constructor<?>[] constructors = clazz.getConstructors();
        Constructor c1 = clazz.getConstructor(String.class);
        Constructor c2 = clazz.getConstructor(String.class,String.class);
        Constructor c3 = clazz.getConstructor(String.class,String.class,int.class);

        /**
         * 可变参数和数组对象一般是通用的
         */
        Class[] pType = new Class[]{String.class,String.class};
        Object[] obj1 = new Object[]{ "ddd" };
        Object[] obj2 = new Object[]{ "ddd", "anybody" };
        Object[] obj3 = new Object[]{ "ddd", "anybody" ,99};
        Object obj = c2.newInstance("ww","wwww");
        Object obj222 = c2.newInstance(obj2);
        Person p = (Person)obj;
        System.out.println(p.getName()+"--"+p.getSex());

        for (int i = 0; i < constructors.length; i++) {
            Constructor c = constructors[i];
            System.out.println("===");
            Class[] pas = c.getParameterTypes();
            for (int j = 0; j < pas.length; j++) {
                System.out.println(pas[j].getName());
            }
        }
        Method[] method = clazz.getDeclaredMethods();
    }
}

public class Person {

    private String name;

    private String sex;

    private int age;

    private String value;

    public Person(String name) {
        this.name = name;
    }

    public Person(String name, String sex, int age) {
        this.name = name;
        this.sex = sex;
        this.age = age;
    }

    public Person(String name, String sex) {
        this.name = name;
        this.sex = sex;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }
}



猜你喜欢

转载自blog.csdn.net/dong8633950/article/details/85143905