Java反射

package Java反射;

public class 普通类 {
    
    public void sys(){
        System.out.println("1");
    }
    
    public void sys(String s) {
        System.out.println("2");
    }
}

package Java反射;

public class 还是普通类 {
    int a ;
    public 还是普通类(int a) {
        this.a = a;
    }
    public void sys() {
        System.out.println("3");
    }
}

package Java反射;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class 反射类 {
    public Object fs() throws Exception {
        Object obj = Class.forName("Java反射.普通类").newInstance();
        Method me = obj.getClass().getMethod("sys");
        me.invoke(obj);
        Method met = obj.getClass().getMethod("sys", String.class);
        met.invoke(obj, "1");
        return obj;
    }
    public void fs1() throws Exception {
        Object obj = Class.forName("Java反射.还是普通类").getConstructor(int.class).newInstance(1);
        Method me = obj.getClass().getMethod("sys");
        me.invoke(obj);
    }
}

 

package Java反射;

public class 测试类 {
    public static void main(String[] args) throws Exception {
        反射类 f = new 反射类() ;
        f.fs();
        f.fs1();
    }
}

 

执行结果

1

2

3

 

posted @ 2018-09-15 22:03  萧愬夜  阅读(104)  评论(0)    收藏  举报