`
a25765339
  • 浏览: 62587 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

invoke copy bean

 
阅读更多
public Object copyBean(Object source) throws Exception{
		String getMethodName = "";
		String setMethodName = "";
		Method getMethod = null;
		Method setMethod = null;
		Class<? extends Object> sClass = source.getClass();
		//用对象类型创建对象并获得对象的一个拷贝
		Object destination = sClass.getConstructor(new Class[]{}).newInstance(new Object[]{}) ;
		
		Class<? extends Object> dClass = destination.getClass();
		Field[] fields = sClass.getDeclaredFields();
		for(int i = 0; i < fields.length; i++){
			getMethodName = "get" + fields[i].getName().substring(0,1).toUpperCase() + fields[i].getName().substring(1);
			setMethodName = "set" + fields[i].getName().substring(0,1).toUpperCase() + fields[i].getName().substring(1);
			getMethod = sClass.getMethod(getMethodName, new Class[]{});
			setMethod = dClass.getMethod(setMethodName, new Class[]{fields[i].getType()});
			Object value = getMethod.invoke(source, new Object[]{});
			setMethod.invoke(destination, new Object[] {value});
		}
		return destination;
}
分享到:
评论

相关推荐

    Cannot invoke setId on bean class 'class ' - argument type mismatch - had object

    标题 "Cannot invoke setId on bean class 'class ' - argument type mismatch - had object" 描述的是一个在使用Spring框架或者类似的依赖注入容器时常见的错误。这个错误通常发生在尝试通过容器设置一个对象属性,...

    java bean和map之间的互转

    map.put(key, method.invoke(bean)); } } return map; } } ``` 这段代码通过遍历Java Bean类的所有getter方法,获取属性名和对应的值,并存入Map中。 反过来,从Map转换为Java Bean的过程可以使用Java的构造器...

    P/Invoke Interop Assistant交互助手

    P/Invoke Interop Assistant是一个非常实用的工具,它专门用于帮助C#或VB.NET开发者将C或C++的函数和数据类型转换为.NET Framework兼容的形式。这个工具的主要目的是解决跨语言互操作性问题,即所谓的“平台调用”...

    C#窗体中Invoke和BeginInvoke方法详解

    ### C#窗体中Invoke和BeginInvoke方法详解 在探讨C#窗体中`Invoke`和`BeginInvoke`方法的使用及其重要性之前,我们首先需要理解.NET框架下的多线程与GUI操作的基本原则,以及为何这两者在跨线程更新GUI时不可或缺。...

    C# Invoke调用Demo

    在C#编程中,`Invoke`是一个非常关键的概念,尤其在多线程编程中发挥着重要作用。`Invoke`主要用于更新UI(用户界面)控件,因为UI控件通常不是线程安全的,也就是说,它们只能在创建它们的线程中进行修改。这个特性...

    Invoke-and-BeginInvoke.rar_The Difference_invoke

    在Windows Forms或WPF等UI环境中,由于UI元素(如控件)只能在其创建的线程(即UI线程)中进行修改,因此,当需要在后台线程更新UI时,`Invoke`和`BeginInvoke`就显得尤为重要。这两个方法都是`Control`类的成员,...

    p/Invoke.net工具

    《P/Invoke.NET工具详解:实现托管代码与非托管代码的无缝交互》 在软件开发过程中,有时我们需要在.NET Framework的托管代码环境中调用非托管的C/C++库或者WinAPI函数,这时就需要借助P/Invoke(Platform Invoke)...

    P/Invoke Interop 助手

    P/Invoke Interop Assistant,它支持托管代码和非托管代码之间的方法签名的转换,而且直接生成相关的C#或者是VB的方法调用代码。这个签名的转换,不只是适用于Windows的方法签名,只要给定一个C头文件,就可以转换...

    Invoke-WCMDump结合powershell进行密码获取

    Ivoke-WCMDump 什么是Credential Manager ...从Credential Manager导出Windows凭据的Powershell脚本 https://github.com/peewpw/Invoke-WCMDump PS&gt;Import-Module .\Invoke-WCMDump.ps1 ...Invoke-WCMDump

    Python库 | invoke-0.11.0.tar.gz

    《Python库Invoke 0.11.0深度解析》 在Python的世界里,库是开发者的重要工具,它们提供了丰富的功能,极大地提高了开发效率。今天我们要深入探讨的是一个名为`invoke`的库,版本号为0.11.0,它是一个强大的任务...

    Invoke 与BeginInvoke的区别

    ### Invoke与BeginInvoke的区别 #### 一、基本概念 在.NET框架中,`Invoke` 和 `BeginInvoke` 是两个常用的方法,主要用于实现跨线程访问控件或执行操作。这两种方法通常出现在多线程编程场景中,特别是当涉及到UI...

    P/Invoke Interop Assistant

    《P/Invoke Interop Assistant:跨语言互操作的利器》 在.NET框架中,与非托管代码(如C++编写的动态链接库DLL)交互是一个常见的需求,这就是P/Invoke(Platform Invoke)技术的用武之地。P/Invoke Interop ...

    Invoke反射

    【Invoke反射】是一种在.NET框架中使用的重要编程技术,它属于C#或.NET中的动态编程范畴,主要基于System.Reflection命名空间。反射允许程序在运行时检查自身的信息,并且能够动态地创建对象、调用方法、访问属性和...

    AutoCAD .NET ARX Invoke的应用

    AutoCAD .NET ARX Invoke是AutoCAD开发中的一个重要概念,主要涉及到使用.NET Framework与AutoCAD的ARX(Acad Runtime Extension)应用程序之间的交互。在AutoCAD的开发环境中,.NET和ARX是两种不同的扩展机制,前者...

    委托delegate invoke的简单源代码,适合委托初学者!

    本文将深入探讨委托的使用,特别是`Delegate`的`Invoke`方法,以及如何在实际编程中应用这些概念。 首先,让我们了解什么是委托。在C#中,委托是一种引用类型,它定义了一种方法签名,也就是说,它规定了可以关联到...

    Invoke和BeginInvoke对比介绍

    就Invoke和BeginInvoke进行对比介绍,穿插了一些例子在里面

    Python系统任务执行程序Invoke.zip

    Invoke 是简单的 Python 系统任务执行程序。示例:from invoke import run, task @task def clean(docs=False, bytecode=False, extra=''):  patterns = ['build']  if docs:  patterns.append('docs/_...

    socket invoke 小例子

    socket 源码程序 包含socket服务端 ,客户端,通过 Networkstream 流 streamReader /streamWriter进行动态获取写入信息。并且使用 委托 invoke ==

    通过java反射实现map与bean之间互转

    首先,使用`Method`对象的`setAccessible(true)`使私有方法可访问,然后调用`invoke()`方法执行setter。 4. **获取Bean的属性值**:对于Bean到Map的转换,遍历Bean的字段,调用getter方法获取属性值,并将其添加到...

Global site tag (gtag.js) - Google Analytics