1. 程式人生 > >101.【JAVA程式設計】反射

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;
    }
}