java反射之一

public static void main(String[] args) {
        try {
            Class cla = Class.forName("com.money.test.Employee");
            Object obj = cla.newInstance();
            Method method2 = cla.getDeclaredMethod("setNum", int.class);
            System.out.println(method2.invoke(obj, 3));
            Method[] methods = cla.getDeclaredMethods();
            for (Method method : methods) {
                System.out.println(method.getName());
                if (method.getName().contains("setNum")) {
                    System.out.println(method.invoke(obj, 2));
                }
            }
        }
        catch (Exception ex)
        {
            System.out.println(ex.getStackTrace());
        }
}
class Employee {

    private int salary;
    private java.util.Date hireDay;
    private String name;

    public int getSalary() {
        return salary;
    }

    public void setSalary(int salary) {
        this.salary = salary;
    }

    public Date getHireDay() {
        return hireDay;
    }

    public void setHireDay(Date hireDay) {
        this.hireDay = hireDay;
    }

    public String getName() {
        return name;
    }

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

    public Employee(String name, int salary, Date hireDay) {
        this.name = name;
        this.hireDay = hireDay;
        this.salary = salary;
    }

    public Employee() {

    }

    static private HashMap<String, String> dict = new HashMap<String, String>();

    static {
        num=0;
/*        dict.put("1","Employee");
        dict.put("2","Employee");*/
    }

    @Override
    public String toString() {

        if (hireDay == null)
            hireDay = Calendar.getInstance().getTime();
        SimpleDateFormat formatter;
        formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return String.format("name:%s,salary:%d,hireDay:%s", name, salary, formatter.format(hireDay));
    }

    static int num;
    public static int getNum()
    {
        return num;
    }

    public static int setNum(int a)
    {
        num +=a;
        return getNum();
    }
}
原文地址:https://www.cnblogs.com/zhshlimi/p/6433400.html