我使用的是java 1.5。我要创建一个公共函数,它接受两个对象(源类和目标类),它们调用所有getter并从源对象获取所有值,并调用目标对象的setter。我的意图是从源对象获取所有值,并将这些值设置为目标对象。两类解析对象不同,但所有封装都是相等的(变量、getter和setter方法相似)。
这里我要使用反射,然后调用getters和setter。正如我所知,使用反射会导致性能和内存问题。有没有办法在没有任何其他第三方jar的情况下,只使用java来实现这一点?有什么实现方法吗?任何来源的示例代码都将受到高度赞赏。
我真的会使用插入(或其他类型的代码生成工具)。正如指令插入所做的那样,它生成的字节码在性能方面就像手工编写的代码一样。但是,您应该意识到,这比直接使用反射要高得多。你看不到它,也无法调试它。这就是为什么源代码生成是一个真正的替代方案,但它也是字节!您需要构建过程的支持。IDE也会提供一些支持。
无论您的解决方案是什么,都要仔细考虑是否可以避免复制数据。我的意思是,两个数据结构如此相似,自动复制是可能的,它的价值有多大?在这里付出3、4个月的努力真的值得吗?