• java中由类名和方法名字符串实现其调用【反射机制】


    import java.lang.reflect.Method;

    public class Test {
    public static void main(String[] args) throws Exception {
    String className = "com.runqianapp.ngr.alias.example.FunClass";
    String methodName = "sayHello";
    Class clz = Class.forName(className);
    //
    Object obj = clz.newInstance();
    //获取方法
    Method m = obj.getClass().getDeclaredMethod(methodName, String.class);
    //调用方法
    String result = (String) m.invoke(obj, "aaaaa");
    System.out.println(result);
    }
    }

    class FunClass{
    public String sayHello(String s){
    System.out.println(s);
    return "hello!";
    }
    }

    2.

    import java.lang.reflect.InvocationTargetException;

    /**

    * Created by IntelliJ IDEA.

    * File: TestRef.java

    * User: Administrator

    * Date: 2015-7-10 16:28: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信息!


    ————————————————
    版权声明:本文为CSDN博主「weixin_39612038」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_39612038/article/details/114132873

  • 相关阅读:
    Spring Boot入门
    Spring MVC文件上传和下载
    Spring MVC异常处理
    SpringMVC
    linux(2)
    linux(1)
    白盒测试
    LoadRunner(8)
    LoadRunner(7)
    LoadRunner(6)
  • 原文地址:https://www.cnblogs.com/wxmdevelop/p/14849537.html
Copyright © 2020-2023  润新知