JavaBean:实现元素迭代器的最快方法?
我有一个bog标准JavaBean,MyJavaBean。假设它有50个变量,我用eclipse生成了50个getter和50个setter 这个bean由一些装配线业务逻辑填充,现在我想遍历所有50个元素。例如,实现一个to string方法。当然,我不想调用每个getter方法 现在有一些明显但漫长的方法:JavaBean:实现元素迭代器的最快方法?,java,collections,javabeans,Java,Collections,Javabeans,我有一个bog标准JavaBean,MyJavaBean。假设它有50个变量,我用eclipse生成了50个getter和50个setter 这个bean由一些装配线业务逻辑填充,现在我想遍历所有50个元素。例如,实现一个to string方法。当然,我不想调用每个getter方法 现在有一些明显但漫长的方法: 实现bean,使它的元素集合在运行时保持最新,然后只需为此编写一个getter 通过将每个元素添加到集合并返回该元素,手动实现迭代器 所以我有两个问题: 如果我有一个包含50个元素
- 实现bean,使它的元素集合在运行时保持最新,然后只需为此编写一个getter
- 通过将每个元素添加到集合并返回该元素,手动实现迭代器
- 如果我有一个包含50个元素的bean,我是否已经犯了错误?这是一种负面模式吗
- 我怎样才能以更聪明的方式做到这一点?是否有一些库使用反射或类似的方法返回给定JavaBean的元素集合
如果您的类是JavaBean,我建议不要直接访问字段,而是使用JavaBeans/BeanInfo机制。您可以直接使用,也可以通过帮助程序库(如或抽象)来实现 请查看我之前的答案以供参考:
因此,基本上您希望javabean使用generic
toString
方法,对吗?我希望javabean中的变量使用generic iterator。实现泛型toString只是一个示例用例。这可能不是运行时最快的,但实现时间最快。@SpaceTrucker与往常一样,在优化之前,找出是否确实存在瓶颈(通过分析等)。在确定瓶颈之前,为了完整性起见,最好使用高级方法,我最后使用的解决方案是:Map properties=BeanUtils.descripe(MyJavaBean);List List=newarraylist(properties.values());对于(objectobj:list){/*mylogic*/}