`
chenhua_1984
  • 浏览: 1250436 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

java 的 invoke 的使用方法

阅读更多
package com.hua.invoke;

public class UserInfoBean {
	private String username;
	private String age;

	public String getUsername() {
		System.out.println("getUsername method be called");
		return username;
	}

	public void setUsername(String username) {
		System.out.println("setUsername method be called");
		this.username = username;
	}

	public String getAge() {
		System.out.println("getAge method be called");
		return age;
	}

	public void setAge(String age) {
		System.out.println("setAge method be called");
		this.age = age;
	}

}

 

package com.hua.invoke;

import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class ReflectTest {
	
	@SuppressWarnings("unchecked")
	public static void main(String[] args) {
		try {
			Class clazz = Class.forName("com.hua.invoke.UserInfoBean");
			Object obj = clazz.newInstance();
			Field[] fields = clazz.getDeclaredFields();
			String name="chenhua";
			for (Field f : fields) {
				PropertyDescriptor pd;
				pd = new PropertyDescriptor(f.getName(), clazz);
				Method wM = pd.getWriteMethod();
				wM.invoke(obj, name);
				System.out.println(wM.getName()+"========="+name);
			}
			for (Field f : fields) {
				PropertyDescriptor pd;
				pd = new PropertyDescriptor(f.getName(), clazz);
				Method rM = pd.getReadMethod();
				String num = (String) rM.invoke(obj);
				System.out.println(rM.getName() + "==" + num);
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (IntrospectionException e) {
			e.printStackTrace();
		} catch (InstantiationException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			e.printStackTrace();
		}
	}
}

 

分享到:
评论

相关推荐

    详解Java中Method的Invoke方法

    Java 中 Method 的 Invoke 方法详解 Java 中的 Method 对象提供了 invoke 方法,这个方法可以动态地调用 Java 方法。下面详细介绍了 invoke 方法的实现机制。 首先,在调用 invoke 方法之前,需要检查 ...

    java反射机制及Method.invoke解释

    在 Java 反射机制中,我们可以通过 Method 对象的 invoke 方法来执行某对象的方法,这个方法的返回值是 Object 类型的,可以是基本类型、数组、集合等各种类型。 Java 反射机制提供了一种动态获取类信息和执行对象...

    Java方法反射调用demo

    在Java中,我们可以通过`Class`对象的`getMethod`方法获取到指定的公共方法,然后通过`invoke`方法调用它。例如: ```java Method method = MyClass.class.getMethod("myMethodWithoutArgs"); method.invoke...

    Java Method类及invoke方法原理解析

    Java Method类及invoke方法原理解析 Java Method类是Java反射机制中的一个重要组件,它提供...Java Method类的invoke()方法提供了一种灵活的方式来调用Java方法,但需要注意invoke()方法的使用限制和潜在的异常风险。

    Invoke反射

    然后,你可以使用这个类型实例来探索它的成员,甚至在运行时调用它们,这就是Invoke方法的用途。 `Invoke`方法是MethodInfo类的一个成员,它允许我们动态地调用一个方法。以下是一段基本的代码示例: ```csharp ...

    黑马程序员------代理类中invoke方法注意点

    `invoke`方法是Java动态代理中的核心方法,它位于`java.lang.reflect.InvocationHandler`接口中。本篇文章将深入探讨代理类中`invoke`方法的使用及其注意事项。 代理类主要用于实现AOP(面向切面编程),它可以提供...

    java 反射得到某个方法

    在本文中,我们将深入探讨如何使用Java反射来获取并执行某个特定的方法。 首先,我们需要了解Java反射的基本概念。`java.lang.Class`类是反射的核心,它代表了Java中的每一个类。我们可以通过以下方式获取到一个...

    Java反射调用方法

    在给定的代码中,`TestRef` 类展示了如何使用Java反射调用方法。首先,我们创建了一个 `Foo` 类,它有一个私有字符串成员变量 `msg` 和三个方法:`setMsg`、`getMsg` 和 `outInfo`。`main` 方法是演示反射调用的入口...

    java动态调用方法

    Java动态调用方法是Java反射机制的一个重要应用,它允许我们在程序运行时,根据需要动态地获取类的信息并调用其方法。这种能力为代码的灵活性和可扩展性提供了强大的支持,尤其在处理不确定的对象类型或者需要在运行...

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

    4. **调用私有方法**:现在我们可以调用私有方法了,这需要使用`invoke()`方法,传入目标对象实例和方法的参数。如果`myPrivateMethod`是静态方法,则不需要传入实例。例如:`privateMethod.invoke(myInstance, 123)...

    Java反射方法调用

    在这个主题中,我们将深入探讨如何使用Java反射来调用不同类型的参数方法,包括无参方法、Object类型参数的方法、基本类型参数的方法以及数组参数的方法,以及如何调用私有方法。 首先,要调用无参方法,我们可以...

    java反射机制详解及Method.invoke解释.pdf

    在使用 Method.invoke() 方法时,需要注意参数的类型和数量,因为 Method.invoke() 方法会根据参数的类型和数量来确定要调用的方法。如果参数的类型或数量不正确,可能会引发异常。 在 Java 反射机制中,除了可以...

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

    注意,调用私有方法时,通常需要使用`setAccessible(true)`来绕过Java的访问控制,但这可能带来安全风险,因此需谨慎使用。 总的来说,Java反射机制提供了强大的编程能力,但同时也需要开发者对程序的运行行为有...

    Java中使用Jacob实现Windows下语音合成并生成音频文件示例代码.rar

    4. **语音合成(Text-to-Speech, TTS)**:在Java中,我们可以通过Jacob调用`SpVoice.Speak()`方法,传入需要合成的文本字符串,让系统语音引擎将其读出来。还可以设置一些参数,如语速、音调等,以定制合成效果。 ...

    C#调用java类、jar包方法

    在跨平台开发中,有时需要将不同编程语言的组件整合在一起,例如在C#应用中调用Java类或使用Java的jar包。本篇将详细阐述如何在C#环境中实现对Java类的调用以及使用Java的jar包。 首先,要理解C#与Java之间的互操作...

    Delphi-Invoke-Java-WebService.rar_delphi webservice_delphi的invok

    在Delphi中调用Java WebService,我们需要使用`TWebMethod`类和`Invoke`方法。`TWebMethod`是Delphi提供的组件,它允许我们创建和调用Web服务方法。`Invoke`方法则负责实际的调用过程,它可以处理输入参数并接收返回...

    fabric-sdk-java+ springBoot 简单invoke和query引用示例

    这是一个基于spingBoot的项目,通过此项目可以实现对fabric...5,执行QueryChaincode.java,或是InvokeChaincode.java 6,启动web服务:执行DemoApplication.java 详细教程见: https://mp.csdn.net/postedit/88354838

    java反射基本方法测试

    parameterTypes)`获取特定方法,然后使用`invoke(Object obj, Object... args)`执行方法。 五、获取和操作构造器 7. 获取构造器:`getConstructors()`返回所有公共构造器,`getDeclaredConstructors()`返回所有...

    Java 反射创建get set方法及反射方法的调用

    本文介绍了如何使用Java反射机制来创建get和set方法,并通过反射调用这些方法来访问对象的属性。这种方式虽然灵活,但在实际开发中应当谨慎使用,因为它可能会降低代码的性能和可维护性。了解反射机制的基本原理对于...

    InvocationHandler中invoke()方法的调用问题分析

    "InvocationHandler中invoke()方法的调用问题... InvocationHandler 中 invoke() 方法的调用问题分析可以帮助我们更好地理解 Java 中的动态代理机制,掌握 InvocationHandler 的使用方法,实现更加灵活的动态代理机制。

Global site tag (gtag.js) - Google Analytics