package com.cash.utils;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import com.cash.server.ICommonService;
public class ClassUtil {
public static String exec(String classString, Object[] objects) {
Class<?> convertorClass;
String result = null;
if (null == classString || "".equalsIgnoreCase(classString)) {
return null;
}
try {
convertorClass = Class.forName(classString);
ICommonService convertor = (ICommonService) convertorClass
.newInstance();
Method istance = convertorClass.getMethod("run",
java.lang.String.class,java.lang.String.class,java.lang.String.class);
result = (String) istance.invoke(convertor, objects);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
}
return result;
}
}
package com.cash.server;
public interface ICommonService {
public String run(String para1, String para2, String para3);
}
package com.cash.server;
public class AService implements ICommonService {
@Override
public String run(String para1, String para2, String para3) {
return para1 + ":" + para2 + ":" + para3;
}
}
package com.cash.server;
import com.cash.utils.ClassUtil;
public class Main {
public static void main(String[] args) {
Object[] objects = {"I Am "," The " , " Best"};
String result = ClassUtil.exec("com.cash.server.AService", objects);
System.out.println(result);
}
}
分享到:
相关推荐
自定义Java类加载器demo,自定义了一个classLoader,重写了loadClass 和findClass,注意 loadClass打破了双亲委派机制,所有的类都要在自定义的class文件中找到,而findClass遵循了双亲委派机制
Java调用Redis的一些简单Demo,可在MyEclipse上运行
java接口读加密狗Demo,大家可以尝试哈
echarts动态加载 java demo 基于echarts动态数据加载的一个demo,简洁,经典。 很适合初学者对前后端的结合。
IKAnalyzer非常易用的java分词工具。可以自定义扩展词汇。...这个是一个完整的java项目demo。直接可以用,不用再去google下载了。添加了几个自定义词汇,测试好用。 运行ika.java里的main方法即可
java调用c代码demo
Java类加载深度剖析,研究实践的demo
通过 Jdk 工具类,直接将 Java 源码编译为 Class 字节码,并可加载为 Class 对象; 实例化后,可调用实例对象的方法 通过上面的实现,可以在线动态修改源码,并触发编译,加载到线上项目内,实现类似于热 部署的...
图片延时加载详细demo
xtree java异步加载树demo 环境:myeclipse6.5+jdk1.5+tomcat5.5+oracle10g 下载后解压文件后,运行sql脚本,将工程导入到myeclipse中,修改数据源信息,发布运行访问index.jsp页面即可。 sql脚本漏传了:create ...
日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...
通过AbstractProcessor结合JavaPoet 实现Android View通过注解加载实例
echarts 项目 echarts动态数据加载,结合java的一个demo. 小项目:折线图,柱状图
该应用是演示怎样使用多线程来显示一个Swing应用的加载动画。主要是使用JProgressBar和Timer来实现。目的是让比较复杂的Swing应用启动时解决延迟的状态,以提供友好的使用感。 阅读对象:使用Swing开发应用的学员。
二维码的特点: 1.高密度编码,信息容量大:可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比普通条码信息容量约高几十倍。 2.编码范围广:该条码可以把图片、声音、文字、签字、指纹等可以...
日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...
克隆应用程序: https://github.com/AlanKostrick/java-react-demo.git : https://github.com/AlanKostrick/java-react-demo.git 光盘进入server-side 如果计划将Eclipse用作IDE,请运行gradle eclipse 。
请将本maven项目引入你自己的maven项目中(在你自己的pom.xml文件中配置这个项目的gourp和id以及版本号),通过模块化导入,注意把spring-activeMQ.xml加载到容器当中,运行tomcat启动项目,即可看到效果。
通过动态加载jar包的方式,反射调用内部方法
比较简单的一个动态树的加载实例demo,可以下下来看看