Java 反射 方法调用
2023-09-27 14:23:51 时间
在使用Java 反射时,对方法的调用,可能碰到最多的问题是,方法的变量如何使用。其实,调用方法的变量全部在参数数组里,不管有多少个参数,你都要把它放在参数数组里,如果是单个非数组参数,则可不使用参数数组.
如一个类中main方法的参数为String[] args,则在Java reflect中调用时,需要放在new Object[]{}中。
/** * 调用非当前路径下的类 */ public void classLoadTest2(){ try { URL[] urls = new URL[]{ new File("D:\\Users\\workspace\\ClassLoadTest\\bin").toURI().toURL() }; ClassLoader clsLoader = new URLClassLoader(urls, this.getClass().getClassLoader()); Class<?> c =clsLoader.loadClass("test.ClassLoaderTest"); //Class<?> c = Class.forName("test.ClassLoaderTest"); Method[] ms = c.getDeclaredMethods(); Object obj = c.newInstance(); for(int i=0;i<ms.length;i++){ Method m = ms[i]; System.out.println("Method:" + m.getName()); Type[] types = m.getGenericParameterTypes(); System.out.println("param count:" + types.length); for (int j = 0; j < types.length; j++) { System.out.println("Method[" + m.getName() + "] params:" + types[j].toString()); } if("main".equals(m.getName())){ m.invoke(obj, new Object[]{new String[]{}}); } } } catch (Exception e) { e.printStackTrace(); } }
相关文章
- 10个问题让你快速避开java中的jdbc常见坑
- java中string数组转换为list列表的方法
- java获取类的信息
- Python利用JPype调用Java对象方法【实现在Python中调用JAVA】
- java常量使用比较好的方法
- java之工厂方法
- java反射子之获取方法信息(二)
- Java 7如何操纵文件属性
- java反射调用get/set方法,你还在拼接方法名吗?
- Java 小数类 及四舍五入的方法 精度非常高的小数时用
- java 异常匹配
- 关于java中BufferedReader的read()及readLine()方法的使用心得
- java中抽象类和空的方法体有什么区别?
- java collection get 方法
- Java NIO-3
- Java 基础(String的常用方法)
- java log4j 打日志到控制台同时打印到不同文件
- Java中解决中文乱码问题的方法
- java-Java可以对方法进行序列化?
- java内存管理(堆、栈、方法区)
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
- java上位机开发(java基础)
- Java 使用Stream I/O(InputStream/OutputStream)读写文件的方法及示例代码
- androidの异常:java.lang.IllegalStateException: ImageLoader must be init with configuration befor 错误解决方法
- 我的Android进阶之旅------>Java字符串格式化方法String.format()格式化float型时小数点变成逗号问题