zoukankan      html  css  js  c++  java
  • 通过Java反射调用方法

    通过Java反射调用方法
     
    这是个测试用的例子,通过反射调用对象的方法。
    import java.lang.reflect.Method; 
    import java.lang.reflect.InvocationTargetException; 
    
    /** 
    * Created by IntelliJ IDEA. 
    * File: TestRef.java 
    * User: leizhimin 
    * Date: 2008-1-28 14:48:44 
    */ 
    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信息! 
    
    Process finished with exit code 0 
  • 相关阅读:
    undefined reference to `sqrt' 问题
    linux上开发minigui的配置过程
    linxu select 返回值
    Unix/Linux C静态库的使用
    ubuntu 默认pdf阅读器乱码
    文件锁使用原理及其方法
    fileno函数与ftruncate函数
    Linux下select函数的使用
    unix linux 文件锁
    iOS 基础笔试题
  • 原文地址:https://www.cnblogs.com/henuyuxiang/p/7149288.html
Copyright © 2011-2022 走看看