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连接MySQL的Demo,但实际开发中,你可能需要处理异常、优化SQL语句、使用存储过程、进行事务控制等。在深入学习JDBC的同时,也要关注数据库设计和SQL优化,这将对你的开发工作大有裨益。 ...
在Java编程中,动态编译代码并热加载类是一项重要的技术,它允许程序在运行时修改或添加新的类,而无需重启应用。这种能力对于快速迭代开发、调试和性能优化非常有用。本主题将深入探讨Java中的动态编译与热加载机制...
在Java微信小程序Demo中,可能会有数据库连接和CRUD操作的示例,演示如何通过Java操作数据库,为小程序提供数据支持。 6. **微信小程序生命周期** - 微信小程序有自己的一套生命周期函数,比如onLoad、onShow、...
描述中提到的“Demo中包括工程的源代码和编译后打包的运行程序”,这表明这个Demo是一个完整的开发示例,开发者可以查看源代码来学习如何实现特定的功能或概念。源代码是用Java编程语言编写的,它提供了关于程序逻辑...
在这个Java demo中,我们有以下几个关键组成部分: 1. **CEB2PDF.java**:这是主要的Java源代码文件,包含了转换逻辑。它应该包含调用外部库或API的代码,将CEB文件解析并转化为PDF。可能的方法包括通过JNI(Java ...
总之,这个名为“测试普通Java程序ClassLoader等级关系的Demo程序”旨在帮助开发者掌握Java中类加载器的工作原理和它们之间的层次关系,这对于理解Java应用程序的运行机制和进行问题排查具有非常实际的意义。...
本篇将通过一个简单的Java调用Redis的Demo来探讨如何在Java应用中操作Redis。 首先,我们需要在项目中引入Jedis库,这是一个Java客户端,用于连接和操作Redis。你可以通过Maven或Gradle在你的构建文件中添加依赖。...
在这个"java的Servlet测试demo"中,我们将深入理解Servlet的工作原理以及如何在集成开发环境(IDE)IntelliJ IDEA中进行开发和测试。 首先,Servlet生命周期包括初始化、服务和销毁三个主要阶段。初始化阶段,...
在这个“使用的Java系统Demo”中,我们主要探讨的是Java在实际系统开发中的应用和示例。Java是一种广泛应用于企业级应用开发的强大编程语言,以其“一次编写,到处运行”的跨平台特性而闻名。这个Demo可能是为了展示...
在这个"JavaPractice"压缩包中,你可以期待找到以下几类示例: 1. **基础语法**:包括变量声明、数据类型(如整型、浮点型、字符型、布尔型)、流程控制(if语句、for循环、while循环、switch语句)、数组、字符串...
3. **服务加载器**:Java SPI提供了`java.util.ServiceLoader`类,用于加载配置文件中的服务提供者,并实例化这些类。 ### 二、SPI工作流程 1. **查找配置文件**:`ServiceLoader`会去`META-INF/services`目录下...
DEMO中会包含如何加载和使用这些证书,以及如何处理加密和解密的过程。 4. **回调通知处理**:微信支付在交易完成后会向商户服务器发送异步通知。DEMO中会有处理这些通知的代码,展示如何验证通知的真伪,并根据...
为了实现懒加载,我们需要扩展`PagerAdapter`,并在`instantiateItem()`方法中检查是否需要加载Fragment的数据。只有当Fragment即将可见时,才执行数据加载。 - **Fragment的状态管理**:在Fragment的`onResume()`...
在这个“javacv的demo”中,我们可能找到一个展示JavaCV功能的示例应用。这个示例可能包括了如何使用JavaCV进行视频捕获、处理、推流等操作。在实际应用中,这些功能可以用于创建监控系统、视频分析软件,甚至复杂的...
"最简单可用listview上拉刷新下拉加载demo"就是这样一个示例项目,它为初学者提供了实现这两个功能的基础模板。 1. **上拉刷新(Pull-to-Refresh)** 上拉刷新功能允许用户通过在ListView底部向上滑动来获取更新的...
java接口读加密狗Demo,大家可以尝试哈
在这个“java2D忍者游戏demo源码”中,开发者使用了Java 2D API来构建一个简单的忍者游戏。这个游戏可能是为了教学目的设计的,适合已经掌握了基础Java编程的人员学习和研究。 在Java 2D中,你可以创建复杂的图形、...
在Java中,读取Word文档主要通过`XWPFDocument`(用于DOCX格式)和`HWPFDocument`(用于DOC格式)类来实现。这两个类分别代表了Word 2007以上和2003及以下版本的文档对象模型。 3. **DOC和DOCX的区别**: - DOC是...
通过这个简单的Java动态代理demo,你可以了解到如何在实际项目中利用动态代理进行功能扩展,同时避免了为每个接口编写单独的代理类。这种技术可以极大地提高代码的可复用性和可维护性,是Java开发中一个强大的工具。