java - 使用反射没有性能问题

标签 java reflection

我使用java 1.5。我要创建一个通用函数,它需要 2 个对象(源类和目标类),它们调用所有 getter 并从源对象获取所有值,然后调用目标对象的 setter。我的目的是从源对象获取所有值并将这些值设置为目标对象。两类解析对象不同,但所有封装都是相同的(变量、getter 和 setter 方法相似)。

这里我将使用反射,然后调用 getter 和 setter。据我所知,使用反射会带来性能和内存问题。有没有什么方法可以只使用java而不使用任何其他第三方jar来解决这个问题?有任何实现、方法来做到这一点吗?任何来源、示例代码都受到高度赞赏。

最佳答案

我真的会选择仪器(或其他类型的代码生成工具)。仪器所做的就是生成字节代码,其行为就像手写代码的性能一样。但是,您应该意识到,其工作量比直接使用反射要高得多。你看不到它,也无法调试它。这就是为什么源代码生成是一个真正的替代方案,但它也是字节的!您需要构建过程的支持。 IDE 的一些支持也很好。

无论您的解决方案是什么,请仔细考虑是否可以避免复制数据。我的意思是,两个相似的数据结构有多大值(value),并且可以自动复制?真的值得在这里投入3、4个月的努力吗?

关于java - 使用反射没有性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23288115/

相关文章:

java - 方法 setLatestEventInfo(GcmMessageHandler, String, String, PendingIntent) 未定义类型通知

java - 如何调试使用 java 反射调用的代码?

c# - ICustomAttributeProvider.GetCustomAttributes(...) : Design Strangety?

php - 如何读取 PHP 中的注释 block ?

c# - 构造函数参数枚举和魔术字符串

c# - 获取 ASP.NET MVC 4 中按名称给定的方法的属性

java - 为什么在第二个 For 循环中给出 ArrayIndexOutOfBoundsException?

java - 在 Java 中将字符串转换为 SomeType

java - 扫描仪的意外行为

Java使用固定参数调用自己的私有(private)方法