using System;
using System.Reflection;
public class Invoker
{
public static void Main()
{
System.Type myType = System.Type.GetType("Demo");//取得系统类型
object obj = Assembly.GetAssembly(myType).CreateInstance("Demo");//创建实例
MethodInfo method = myType.GetMethod("PrintLine");//提取方法信息
method.Invoke(obj, new object[]{"Rookie", 27});//调用方法
method = myType.GetMethod("PrintLine2");//提取另外一个方法,实际应用中是根据不同版本取得同一个方法,而构造不同参数数组
method.Invoke(obj, new object[]{"Rookie", 27, "Rookie personal information."});//调用方法
}
}
public class Demo
{
public Demo()
{
}
//实际应用中老版本的方法
public void PrintLine(string name, int age)
{
System.Console.WriteLine("Name = " + name + "; Age = " + age.ToString());
}
//实际应用中升级版本的方法(名称相同,只是参数个数不同)
public void PrintLine2(string name, int age, string description)
{
System.Console.WriteLine("Name = " + name + "; Age = " + age.ToString() + "; Description = " + description);
}
}
0
0
Elasticsearch 6.2.4 xpack白金版破解-仅供交流学习使用
Logback多进程写入同一日志文件时滚动日期混乱问题
mycat事务中上来执行select马上提交——小猫如此折腾,我选dble
我家很管事的猫——mycat初步部署实践与问题排查
certbot https签发证书与自动更新——acme实在太难用,certbot一键式全搞定
自力更生Collections.sort发现比较结果混乱?Comparator的锅还是强转类型导致?
Java SPI、servlet3.0与@HandlesTypes源码分析
真——Springcloud支持Https
Controller层的方法访问标志与Spring装配与AspectJ切面处理