`

通过class方法名和参数反射方法

    博客分类:
  • java
阅读更多
import java.lang.reflect.Method;

public class Executor<T> {
	/**
	 * 
	 * @param clazz 执行类的class
	 * @param str  方法名
	 * @param obj  参数
	 * @return
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public T getObject(Class clazz,String str,Object[] obj) throws Exception{
		Class[] cla=new Class[obj.length];
		if(obj.length==0){
			cla=null;
		}else{
			for(int i=0;i<obj.length;i++){
				cla[i]=obj[i].getClass();
			}
		}
		Method m=clazz.getMethod(str,cla);
		return (T)m.invoke(clazz.newInstance(), obj);
	}
	
	public static void main(String[] args) {
		try {
			new Executor<>().getObject(A.class, "printString",new Object[]{"string",1});
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

class A{
	public void printString(String str,Integer i){
		System.out.println(str+i);
	}
	
}


结果:
string1
分享到:
评论

相关推荐

    java 反射 调用私有方法(有参数私有方法)获取私有属性值

    Java反射是Java语言提供的一种强大的动态类型特性,它允许程序在运行时检查类、接口、字段和方法的信息,并且能够动态地创建对象和调用方法。这个能力使得开发者可以突破静态类型的束缚,实现一些在编译时期无法完成...

    反射 reflect 根据方法名得到方法,并根据不同的数据类型参数和不同的返回值类型

    通常,我们先根据方法名和参数类型找到可能匹配的方法,然后再通过检查返回值类型来进一步筛选。例如: ```java List&lt;Method&gt; methods = clazz.getMethods(); for (Method m : methods) { if (m.getName().equals...

    java 通过反射获取类上注解,方法上注解,注解里的值及方法参数

    本教程将深入探讨如何通过反射获取类、方法上的注解以及注解中的值和方法参数。 1. **注解的定义与使用** 注解以`@`符号开头,后面跟着注解的类型。例如,`@Override`表示方法重写,`@Deprecated`表示某个功能已...

    java 反射得到某个方法

    通过反射,我们可以在不知道具体类名或方法名的情况下,动态地调用对象的方法或访问其属性。在本文中,我们将深入探讨如何使用Java反射来获取并执行某个特定的方法。 首先,我们需要了解Java反射的基本概念。`java....

    通过反射调用静态方法

    2. 获取`Method`对象:使用`Class`对象的`getDeclaredMethod()`或`getMethod()`方法,传入静态方法的名称和参数类型。如果方法是静态的,不需要实例化对象。 3. 调用`Method`对象的`invoke()`方法:传入null作为第...

    Java方法反射调用demo

    Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个特性使得Java具有了高度的灵活性,常用于框架开发、插件系统、元编程等...

    frida反射调用对象中的方法与字段.pdf

    Java反射是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。这种动态获取信息以及动态调用对象方法的功能称为Java的反射机制。反射机制为...

    Java反射调用方法

    接下来的代码段提供了一个通用的 `invokeMethod` 方法,这个方法接受一个对象、一个方法名和一个参数数组,然后动态地调用指定对象上的方法。其工作原理如下: 1. 获取方法对象的类 `ownerClass`。 2. 创建一个 `...

    JAVA反射参数传递概略

    在处理参数时,反射还提供了获取和设置方法参数类型的能力。`Method`对象的`getParameterTypes()`方法可以返回一个`Class&lt;?&gt;`类型的数组,表示方法的所有参数类型。如果需要传递的是对象,我们必须确保传递的参数...

    java反射基本方法测试

    在Java中,反射主要用于在运行时分析类、接口、字段和方法的信息,使得我们可以在不知道对象具体类型的情况下创建和操作对象。下面我们将详细探讨Java反射的基本方法及其应用。 一、获取类信息 1. `Class` 类:...

    Java技术对接收数组参数的成员方法进行反射

    2. 获取方法:使用`Class`对象的`getMethod()`或`getDeclaredMethod()`方法,传入方法名和参数类型,获取到`Method`对象。如果方法接收数组作为参数,我们需要传递数组的类类型,例如`int[].class`。 3. 创建数组:...

    java 通过反射获取枚举类,及枚举类的值,枚举类枚举实例名

    在Java编程语言中,反射(Reflection)是一种强大的工具,它允许程序在运行时检查和操作类、接口、字段和方法等对象。枚举(Enumeration)是Java中的一个特殊类类型,用于定义一组常量。本项目"test-enum-demo-...

    类的反射机制 常用的方法(简单明确)

    反射是Java语言的一个重要特性,它允许在运行时检查类、接口、字段和方法的信息,并且可以动态地调用方法或修改字段值。这种能力使得Java程序具有高度的灵活性和可扩展性。 #### 通过代理创建类并执行其方法 在...

    java反射,获取所有属性、方法以及List集合类

    对于私有字段和方法,可以使用`setAccessible(true)`来绕过访问限制。这需要谨慎使用,因为可能破坏封装性。 ```java field.setAccessible(true); field.set(obj, newValue); ``` 总结来说,Java反射提供了一...

    反射,动态加载指定类调用类中的方法

    2. 获取方法:使用`getMethod()`或`getDeclaredMethod()`,传入方法名和参数类型,获取`Method`对象。 3. 创建对象:如果需要,使用`Constructor.newInstance()`创建类的实例。 4. 调用方法:对获取到的`Method`对象...

    利用反射,根据类得完全限定名获得该类得实例

    这段代码展示了如何使用`loadClass()`方法加载一个类,并通过`newInstance()`创建一个无参数构造函数的实例。这里需要注意的是,如果目标类没有无参数构造函数或者该构造函数不可见,则会抛出异常。 ##### 示例二:...

    反射获取属性调用方法反射获取属性调用方法

    在Java或.NET编程环境中,反射是一种强大的工具,它允许程序在运行时检查并操作类、接口、字段和方法等对象。反射获取属性和调用方法是其核心功能,广泛应用于框架设计、动态代理、插件机制等领域。下面将详细解释这...

    用反射的方式获取父类中的所有属性和方法

    在Java编程语言中,反射(Reflection)是一种强大的工具,它允许程序在运行时检查和操作对象的内部结构,包括类的属性、方法以及构造器。...通过上述步骤,你可以有效地利用反射获取和操作类的父类属性和方法。

    java反射机制,调用私有方法

    2. **访问私有成员**:通过反射,我们可以访问类的私有字段和方法,这在单元测试、调试或某些特定场景下可能需要。`Method`类提供了`getDeclaredMethod()`方法来获取类的私有方法,而`invoke()`方法则可以用来调用这...

    java反射获取参数.zip

    通过Class对象,我们可以动态地获取和操作类的信息,这就是反射的核心。 1. 获取类的Class对象: - `Class&lt;?&gt; clazz = Class.forName("全限定类名");` - 或者,通过对象实例获取:`Class&lt;?&gt; clazz = obj.getClass...

Global site tag (gtag.js) - Google Analytics