package com.springapp.mvc;
import java.lang.reflect.Method;
public class helloWord {
/**
* @param args
*/
public static void main(String[] args) {
try {
Hello h=new Hello();
Object[] argspara=new Object[]{};
Object aa = helloWord.invokeMethod(h,"helloStrs",argspara);
System.out.println("*******"+aa.toString()+"*******");
helloWord.invokeMethod(h, "helloStrs",argspara);
argspara=new Object[]{"he"};
helloWord.invokeMethod(h, "helloStrs",argspara);
argspara=new Object[]{"she",2};
helloWord.invokeMethod(h, "helloStrs2",argspara);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 反射调用方法
* @param newObj 实例化的一个对象
* @param methodName 对象的方法名
* @param args 参数数组
* @return 返回值
* @throws Exception
*/
public static Object invokeMethod(Object newObj, String methodName, Object[] args)throws Exception {
Class ownerClass = newObj.getClass();
Class[] argsClass = new Class[args.length];
for (int i = 0, j = args.length; i < j; i++) {
argsClass[i] = args[i].getClass();
}
Method method = ownerClass.getMethod(methodName, argsClass);
return method.invoke(newObj, args);
}
}
class Hello{
public String helloStrs(){
//根据不同的方法名称,调用不用的方法
System.out.println("hello1");
return "hello1";
}
public void helloStrs(String a) {
//根据不同的方法名称,调用不用的方法
System.out.println("hello11");
}
public void helloStrs2(String a ,Integer b) throws Exception{
//根据不同的方法名称,调用不用的方法
System.out.println("hello12");
}
}
分享到:
相关推荐
java 反射 调用私有方法(有参数私有方法)获取私有属性值
Java反射 调用空参方法 调用Object类型参数的方法 调用基本类型参数的方法 调用基本类型数组参数的方法 调用String数组参数的方法 调用Object数组参数的方法 调用私有方法
调用空参方法 调用Object类型参数的方法 调用基本类型参数的方法 调用数组参数的方法 调用私有方法
java反射调用set方法时如果让参数做自动类型转换5 这段时间学习java的反射机制想实现一个功能:遍历一个Map,然后利用反射机制调用BO的set方法,完成BO属性的自动注入。这样设计的初衷是解决Excel数据导入问题中的...
该篇文章主要介绍当我们碰到参数或者返回值是一个对象时,如何通过frida反射调用该对象的方法(methods)与获取该对象的字段(fields)。感兴趣的朋友可以下载下来看看,了解了解
利用java反射原理调用方法时,常先需要传入方法参数数组才能取得方法。该方法参数数组采用动态取得的方式比较合适
java反射的工具类,可以获得方法的参数名称
主要介绍了java通过反射创建对象并调用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为...
当我们声明了一个泛型的接口...如果还不了解java反射知识,那么你可以先移步到Oracel反射课程,这可能是你开始学习反射的好起点. ReflectionUtil中包含以下几种功能: 通过Type获取对象class; 通过Type创建对
invokeMethod.java 利用反射机制调用成员方法 listConstructors.java 利用反射机制获取构造器列表 listFields.java 利用反射机制获取成员属性列表 listMethods.java 利用反射机制获取成员方法列表 loadClass....
java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。 java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 java...
调用构造方法 获取继承关系 动态代理 注解 使用注解 定义注解 处理注解 泛型 什么是泛型 使用泛型 编写泛型 擦拭法 extends通配符 super通配符 泛型和反射 集合 Java集合简介 使用List 编写equals...
高性能的java反射,适用于频繁调用的情况!! 概述 Kevvy-Reflect是一个非常小的Java库,它通过使用代码生成(取决于ASM)来提供高性能的反射。 表现 ###现场反射: #####非私有字段 #####私人字段 ##### Bean字段...
java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。 java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 ...
在运行状态中,对于任意一个类能够获取类中的所有属性和方法,对于任意一个对象能够调用对象中的属性和方法,这种动态获取属性和方法的机制:反射。 设计模式1(单例,工厂) 设计模式2(观察者,适配器) 设计模式...
当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。 看到这可能比较晕,没关系,我的理解是这样...
Java中的String是可变字符串还是不可变字符串? 答:String是不可变字符串,...答:反射是Java中的一个重要机制,可以在运行时动态获取类的信息,并且调用类的方法、修改类的属性等。反射的作用是增强代码的灵活性和
一、Java基础知识 1.Java有那些基本数据类型,String是不是基本...这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() ...