在使用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. JAVA程序猿怎么才干高速查找到学习资料?

    JAVA程序猿怎么才干高速查找到学习资料? JAVA学习资料在互联网上较为零散,并且大多是英文的.以下介绍3种方式,让程序猿能够高速地找到自己想要的资料. 一.导航站点: 有非常多类似hao123的站 ...

  2. [Angular 2] Property Binding

    Property Binding is bind property NOT attribute! import {Component, Input, Output, EventEmitter} fro ...

  3. android requestDisallowInterceptTouchEvent用途

    ViewPager来实现左右滑动切换tab.假设tab的某一项中嵌入了水平可滑动的View就会让你有些不爽,比方想滑动tab项中的可水平滑动的控件,却导致tab切换. 由于Android事件机制是从父 ...

  4. iOS 蓝牙4.0开发

    背景: 1.iOS的蓝牙不能用来传输文件.2.iOS与iOS设备之间进行数据通信,使用gameKit.framework3.iOS与其他非iOS设备进行数据通信,使用coreBluetooth.fra ...

  5. VMware上实现LVS负载均衡(NAT)

    本文LVS的实现方式採用NAT模式.关于NAT的拓扑图请參照我的上一篇文章.本文纯粹实验.NAT在生产环境中不推荐使用.原因是Load Balancereasy成为瓶颈! 1.VMware9上安装Ce ...

  6. 论js闭包的重要性

    很久没写博客了,今天发现了一个很有意思的问题,写下来分享一下 话不多说,贴前端代码: <script type="text/javascript" src="js/ ...

  7. linux下查阅文件内容cat,more,less,tail

    1.常用cat,直接查看,一次性全部输出 cat  filename cat -b filename 显示行号,除空白行   cat -n 显示行号,包括空白行 常用:cat  filename | ...

  8. jquery之遍历展示title

    //遍历展示title {field:'couponsList',title:'优惠劵类型',width:250,align:'center',sortable:true, formatter:fun ...

  9. pd的django To do list教程-----(2)models模型的建立

    1:在models.py中建表 from django.db import models class Tcontent(models.Model): content = models.CharFiel ...

  10. mysql 查询大量数据内存溢出

    使用非buffer 的sql 查询 比如pymysql 的 pymysql.cursor.SSCursion