在使用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();
}
}

Java 反射 方法调用的更多相关文章

  1. 【译】5. Java反射——方法

    原文地址:http://tutorials.jenkov.com/java-reflection/methods.html ====================================== ...

  2. [转]Java远程方法调用

    Java远程方法调用,即Java RMI(Java Remote Method Invocation)是Java编程语言里,一种用于实现远程过程调用的应用程序编程接口.它使客户机上运行的程序可以调用远 ...

  3. Java反射机制调用对象的方法 —— 将一个对象的属性值赋值给另一个对象的属性

    模拟一个场景: 众所周知,EasyExcel导出Excel文档是依赖于注解完成的,在实体类需要导出的属性上面加上注解,导出的时候会自动识别该属性. 假如我们现在需要导出用户的信息,又不想污染原本的实体 ...

  4. 利用java反射动态调用方法,生成grid数据

    项目中需要java后台查询并组装前台grid的数据,数据行数不定,数据行定义不定,开始用了最原始的方法,写了几百行,就是前台需要什么字段后台拼接什么字段,java代码冗余量非常大,并且不够灵活,一旦前 ...

  5. 通过JAVA反射,调用未知类的类方法

    下面是一个比较简单的通过JAVA的反射机制调用已知方法的例子 package com.togeek.mvntest; import java.lang.reflect.InvocationTarget ...

  6. java反射--方法反射的基本操作

    方法的反射 1)如何获取某个方法 方法的名称和方法的参数列表才能唯一决定某个方法. 2)方法反射的操作 method.invoke(对象,参数列表). 代码实例: package com.reflec ...

  7. java反射——方法

    大家都知道反射技术在Java里面时非常重要的一个技术点,因为Java好多框架的编写都是基于反射的,别的不多说,spring框架里面的IOC就是基于反射实现.那么什么是反射呢?JAVA反射机制是在运行状 ...

  8. Java反射-方法(Method)

    工作了三年,第二次使用反射! 遇到的问题描述: 多个页面查询后,返回的List中的对象属性为“.00”,页面显示不友好. 查询原因是因为查询数据的SQL为:to_char(a.applyAmount, ...

  9. java中方法调用

    JAVA中方法的调用[基础] 一.调用本类中的方法 方法一.被调用方法声明为static ,可以在其他方法中直接调用.示例代码如下: public class HelloWord { /** * @p ...

随机推荐

  1. EA+svn实现UML的版本号控制

    一.安装软件 1.VisualSvn Server svnserver 2.Tortoise Svn svnclient 3.Slik-Subversion-1.7.8-x64版本号控制插件 4.En ...

  2. (1)QlikView概要

    本文的内容,以学习的两个合伙人: I.什么是Qlikview II. QlikView 的优点和缺点 1.1什么是QlikView 1.1什么是QlikView QlikView是一个工具,一个商业智 ...

  3. linux修改主机名-IP

    1.查看当前主机名  hostname 2. ifconfig   显示所有网络接口的信息  ifconfig eth0   显示网卡eth0的信息 3.临时修改主机名 hostname rusky. ...

  4. 【iOS开发之OC和JS互调】

    1.OC中调用JS代码 公司的移动端需要加载一个现有的网页,并且要在原网页要做一些小的调整,如将网页的标题改一下加载到手机的app上,此时就可以在app的oc代码中加入JS代码来实现.如下例子,我要加 ...

  5. jquery之营销系统(补偿记录)

    var appPath = getAppPath(); $(function(){ $("#opreateHtml").window("close"); $(& ...

  6. 一个小的程序--实现中英文切换(纯css)

    <!doctype html><html lang="en"> <head> <meta charset="UTF-8" ...

  7. hdu 2025

    水题 AC代码: #include <iostream> using namespace std; int main() { char a[100],*p; int max,i; whil ...

  8. NodeJs获取不到POST参数

    NodeJs报错,从网页端获取不到POST参数,提示错误类似如下 TypeError: Cannot read property 'username' of undefined     at C:\U ...

  9. jq不识别拼接的对象id的解决方案

    今天在做项目时,遇到了这么个问题. 先声明一下,我的id都是动态变换的.从1-10呢. <div id="a1"></div> <div id=&qu ...

  10. C#结构函数与base关键字

    //声明父类 class ProductsFather { public double Price { get; set; } public int Count { get; set; } publi ...