package com.cxz.thinking.act10;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Random;
class method{
public int sum (Integer a, Integer b){
return a + b;
}
public int minus(Integer a, Integer b){
return a - b;
}
public int plusplus(Integer a){
return ++a;
}
public double show(Double dbl){
return dbl+100;
}
}
Java代码
public class DynamicInvoke {
public static void main(String[] args) throws ClassNotFoundException,
IllegalAccessException, InstantiationException, InvocationTargetException,
IllegalArgumentException {
Class myCls = Class.forName("com.cxz.thinking.act10.method");//动态加载
Object obj = myCls.newInstance();//创建一个method对象Method.invoke()的第一个参数需要
Method[] methods = myCls.getDeclaredMethods();//得到全体方法数组
for( int i = 0; i < methods.length; i++){
Class[] paramType = methods[i].getParameterTypes();//get the type of each param
Object[] paramValue = new Object[paramType.length];//set the values在下文写如数据
Random rand = new Random();
for(int j = 0; j < paramType.length; j++){
if(paramType[j] == Integer.class){//本程序的参数仅仅限与Integer,和Double类
paramValue[j] = rand.nextInt()%10;//动态生成10以下
} else if(paramType[j] == Double.class){
paramValue[j] = rand.nextDouble()%10;//动态生成控制在10以下
}
}
String params = "";
for(int k = 0; k < paramType.length; k++){
params += paramValue[k].toString()+",";
}
params = params.substring(0, params.length() - 1);
params = "[ "+params+" ]";
System.out.println("{"+methods[i].toString() + "}"+params+ methods[i].invoke(obj, paramValue));//开始调用invoke调用
}
}
分享到:
相关推荐
Java 动态加载jar文件示例,轻松实现插件式开发
JAVA动态加载JAR,zip包例子 有在项目中用到
本篇文章主要介绍了详解Java动态加载数据库驱动,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
让Java支持热加载是个不错的想法。如何做到的呢? 1. 定义好接口和实现类 2. 让代理类通过反射的方式调用实现类,对外暴露的是代理类。...Java动态加载class; Java覆盖已加载的class; Java自定义classloader;
JAVA动态加载JAR文件以及反射调用其方法
NULL 博文链接:https://hoochiang.iteye.com/blog/2249816
Java 实现的面向接口的动态加载方法。如MySQL中Driver驱动的加载。 这就是Java面向接口的伟大之处。
JTable实现下拉动态加载数据,滑动动态加载数据,纯原生态java。
NULL 博文链接:https://zheng12tian.iteye.com/blog/1488813
java动态加载类,里面是个实例。
Java动态加载与插件开发研究
Java动态加载类小实验.pdf
springboot 、java类热加载、jarinjar、动态编译、自动引用依赖
动态修改配置文件, 支持中文且乱码问题已修复。配置文件读写更便捷
动态编译字符串成java,并且添加class到jvm
主要介绍了java 动态加载的实现代码的相关资料,Java动态加载类主要是为了不改变主程序代码,通过修改配置文件就可以操作不同的对象执行不同的功能,需要的朋友可以参考下
java程序中加载动态链接库文件方法,涉及到C语言实现控制底层硬件的方法
通过动态加载jar包的方式,反射调用内部方法
主要介绍了Java 动态加载jar和class文件实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下