Java: getter/setter 方法

5

各个框架中如何调用和设置bean的getter方法?是否只能通过反射实现?


@Nikita:我认为OP在考虑ORM。 - Matt Ball
有些框架使用反射,有些修改类的字节码。你有特定的框架想法吗? - Matt Ball
2
我考虑修改集合以过滤值,为此我需要编写一个通用方法,该方法将通过getter方法检索对象中的值。然而,有人告诉我使用反射会影响代码的性能,因此我想知道其他框架如何在不影响性能的情况下完成此操作。 - Rnet
@Matt 你在这个主题上有任何经验吗?我很想亲自听听如何高效地完成它。通过字节码,你是指首先对实例进行序列化吗? - Nikita Rybak
@Nikita:除了在工作中使用Hibernate和EclipseLink之外,我实际上没有其他经验。据我所知,字节码注入意味着在运行时修改实体类的字节码。它通常比反射更快。我找不到任何确定性的文档,但我认为这也是Hibernate创建其实体代理的方式。 - Matt Ball
1个回答

2
大多数框架使用反射来实现这一点,前提是您必须使用适当的getter/setter命名约定(getXXX和setXXX,或对于布尔属性为isXXX和setXXX)。
性能可能会成为一个问题,但除非您对应用程序进行基准测试并发现反射是主要瓶颈,否则我建议不要过早优化,并将反射作为最简单的解决方案。话虽如此,您可能想查看这篇文章,了解如何用代码生成替换反射: http://www.ibm.com/developerworks/java/library/j-dyn0610/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接