美文网首页Android笔记
Java通过反射调用方法

Java通过反射调用方法

作者: Cedric_h | 来源:发表于2019-07-26 00:20 被阅读0次

    原文:https://blog.csdn.net/uyy203/article/details/71204993

    import java.lang.reflect.Method; 
    import java.lang.reflect.InvocationTargetException; 
     
     
    public class TestRef { 
     
        public static void main(String args[]) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException { 
            Foo foo = new Foo("这个一个Foo对象!"); 
            Class clazz = foo.getClass(); 
            Method m1 = clazz.getDeclaredMethod("outInfo"); 
            Method m2 = clazz.getDeclaredMethod("setMsg", String.class); 
            Method m3 = clazz.getDeclaredMethod("getMsg"); 
            m1.invoke(foo); 
            m2.invoke(foo, "重新设置msg信息!"); 
            String msg = (String) m3.invoke(foo); 
            System.out.println(msg); 
        } 
    } 
     
    class Foo { 
        private String msg; 
     
        public Foo(String msg) { 
            this.msg = msg; 
        } 
     
        public void setMsg(String msg) { 
            this.msg = msg; 
        } 
     
        public String getMsg() { 
            return msg; 
        } 
     
        public void outInfo() { 
            System.out.println("这是测试Java反射的测试类"); 
        } 
    }
    

    输出结果:
    这是测试Java反射的测试类
    重新设置msg信息!

    相关文章

      网友评论

        本文标题:Java通过反射调用方法

        本文链接:https://www.haomeiwen.com/subject/ybzqrctx.html