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

posted on   小小鸟儿!  阅读(586)  评论(0编辑  收藏  举报

编辑推荐:
· 如果单表数据量大,只能考虑分库分表吗?
· 一文彻底搞懂 MCP:AI 大模型的标准化工具箱
· 电商平台中订单未支付过期如何实现自动关单?
· 用 .NET NativeAOT 构建完全 distroless 的静态链接应用
· 为什么构造函数需要尽可能的简单
阅读排行:
· C# 多项目打包时如何将项目引用转为包依赖
· 一款让 Everything 更加如虎添翼的 .NET 开源辅助工具!
· 如果单表数据量大,只能考虑分库分表吗?
· 在Winform开发框架支持多种数据库基础上,增加对国产数据库人大金仓的支持
· ocr识别遇到的小问题-图片的EXIF 元数据
历史上的今天:
2018-06-04 SSH 登录时出现如下错误:Host key verification failed
< 2025年4月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10

统计

点击右上角即可分享
微信分享提示