/** * 反射调用某方法得到所需要的值(Object需要强制转型)get the returned object by reflection without parameters * <p> * 需要注意的是这种方法是无参构造器,并且调用的是无参方法 * * @param className * 要调用的类 the class which has a method named the methodName you give * @param methodName * 要掉用该类里的这个方法 the name of the method * @return * @throws Exception */ public static Object getMethodReturnObject(String className, String methodName) throws Exception { return getMethodReturnObject(className, methodName, null, null); }
/** * 反射调用某静态方法得到所需要的值(Object需要强制转型)get the returned object by reflection without parameters * <p> * 需要注意的是这种方法是无参构造器,并且调用的是无参方法,静态方法 * * @param className * 要调用的类 the class which has a method named the methodName you give * @param methodName * 要掉用该类里的这个方法 the name of the method * @return * @throws Exception */ public static Object getStaticMethodReturnObject(String className, String methodName) { return getStaticMethodReturnObject(className, methodName, null, null); }
public static Object getStaticMethodReturnObject(String className, String methodName, Class<?>[] parameterTypes, Object[] args) { try { Class<?> clazz = Class.forName(className); Method method = clazz.getMethod(methodName, parameterTypes); Object object = method.invoke(null, args); return object; } catch (Exception e) { LogHelper.d(TAG, LogHelper.getThreadName() + "Exception=" + e.getMessage()); e.printStackTrace(); } return null; }
/** * 反射调用某方法得到所需要的值(Object需要强制转型)get the returned object by reflection without parameters * <p> * 这种方法是可以使用有参的构造器,但是调用的方法是无参的 * * @param className * 要调用的类 the class which has a method named the methodName you give,may be a abstract class like Context * @param instance * 要调用的类的实例,该实例可以是带有参数的实例,也可以是无参的实例 the instance of the giving className like context * @param methodName * 要掉用该类里的这个方法 the name of the method * @throws Exception */ public static Object getMethodReturnObject(String className, Object instance, String methodName) throws Exception { return getMethodReturnObject(className, instance, methodName, null, null); }
/** * 反射调用某方法得到所需要的值(Object需要强制转型),注意这种方式得到的构造器是无参的构造器 * <p> * 如果该类找不到无参的构造器将会抛出异常 * * @param className * 要调用的类 * @param methodName * 要掉用该类里的这个方法 * @param parameterTypes * 方法对应的参数类型 * @param args * 方法的参数实际的值 * @return * @throws Exception */ public static Object getMethodReturnObject(String className, String methodName, Class<?>[] parameterTypes, Object[] args) throws Exception { Class<?> classes = Class.forName(className); Object instance = classes.newInstance(); Method method = classes.getMethod(methodName, parameterTypes); Object roProductManufacturer = method.invoke(instance, args); return roProductManufacturer; }
/** * 反射调用某方法得到所需要的值(Object需要强制转型) * <p> * 如果该类找不到无参的构造器将会抛出异常 * * @param className * 要调用的类 * @param instance * 要调用的类的实例,该实例可以是带有参数的实例,也可以是无参的实例 * @param methodName * 要掉用该类里的这个方法 * @param parameterTypes * 方法对应的参数类型 * @param args * 方法的参数实际的值 * @return * @throws Exception */ public static Object getMethodReturnObject(String className, Object instance, String methodName, Class<?>[] parameterTypes, Object[] args) throws Exception { Class<?> classes = Class.forName(className); if (instance == null) { throw new Exception("-----------反射获取类实例:" + className + "失败,返回"); } Method method = classes.getMethod(methodName, parameterTypes); Object roProductManufacturer = method.invoke(instance, args); return roProductManufacturer; }
相关推荐
Java反射 调用空参方法 调用Object类型参数的方法 调用基本类型参数的方法 调用基本类型数组参数的方法 调用String数组参数的方法 调用Object数组参数的方法 调用私有方法
通过Java反射调用方法,适合初级自学者,通俗易懂
主要介绍了详解Golang利用反射reflect动态调用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
反射获取属性调用方法反射获取属性调用方法
java 反射 调用私有方法(有参数私有方法)获取私有属性值
本例演示了如何使用反射,调用类的静态方法,封装了工具类ClsTool,统一实现静态方法的调用。使用反射,在特定场景下,能够很好的简化代码。例如mybatis
该篇文章主要介绍当我们碰到参数或者返回值是一个对象时,如何通过frida反射调用该对象的方法(methods)与获取该对象的字段(fields)。感兴趣的朋友可以下载下来看看,了解了解
Java 反射创建get set方法及反射方法的调用
反射是一种允许用户获得类信息的C#功能,Type对象映射它代表的底层对象; 在.Net 中, 一旦获得了Type对象,就可以使用GetMethods()方法获取此类型支持的方法列表;该方法的两种形式: MethodInfo [] GetMethods() ...
利用反射动态调用DLL方法,可录入参数。
反射机制例子及反射方法调用,自己写的一个测试例子。 例子实现了通过字符串指定类名,并调用类的方法
C# 通过反射调用com组件,封装了几个简单的方法方便使用反射调用com。 var obj=new ComObj("excel.application"); obj["Visible"]=true; obj. InvokeMethod("Application.Workbooks.Open", fileName);
反射方法调用model
学习要点: * 1.如何利用Lambda 跟泛型方法配合的区别 .(非委托) * 2.利用Lambda 反射调用属性值 .
NULL 博文链接:https://rednaxelafx.iteye.com/blog/548536
Android PackageManager 有很多方法是没有暴漏出来的,我们如果想调用的话需要用...android_dependency.jar 提供了反射调用相关的class定义,直接放到你的工程libs目录下面,然后就可以进行反射调用PackageManager的API
利用反射 调用以生成的DLL里的方法. 一个简单的实例清楚现实反射DLL
学习反射.调用反射内的方法 C# 加载Dll 使用反射 调用对应的方法公开方法,私有方法,泛型方法
Android PackageManager 有很多方法是没有暴漏出来的,我们如果想调用的话需要用...android_dependency.jar 提供了反射调用相关的class定义,直接放到你的工程libs目录下面,然后就可以进行反射调用PackageManager的API
反射,动态加载指定类调用类中的方法 简单例子