JAXB:对方法的不必要调用

时间:2012-01-30 14:41:07

标签: java performance jaxb marshalling

我正在使用JAXB进行编组。 我注意到当我在另一个对象内编组一个对象时,内部对象的方法(例如:对象A有一个B类型的字段。对象B有一个字符串的getter) - 这个方法被调用两次( String的getter。一次检查是否为null(通过hasValue方法)和另一次获取实际值(通过writeLeafElememnt)。

这看起来非常低效。有关如何绕过此功能的任何想法?

非常感谢。

1 个答案:

答案 0 :(得分:1)

首先,如果所有getter方法都在返回一个字段值,那么它对性能的影响几乎为零。 JVM非常擅长优化这类事情。

但是,如果你真的想避免它,你可以直接注释字段,而不是注释getter方法。但是,它对性能没有任何影响。

这是过早微优化的典型例子。如果你认为某些事情很慢,那就去衡量吧。如果它是一个性能热点,那么,只有这样,做一些事情。