[英]Java bean: Fastest way to implement an iterator of elements?
我有一個標准的Java bean,MyJavaBean。 假設它有50個變量,我用eclipse生成了50個getter和50個setter。
這個bean由一些業務邏輯組裝線填充,現在我想遍歷所有50個元素。 例如,實現一個to-string方法。 當然我不想調用每個getter方法。
現在有一些明顯但很長的方法:
實現bean,以便它保持最新的元素集合,然后只為它編寫一個getter
通過將每個元素添加到集合並返回它來手動實現迭代器
所以我有兩個問題:
如果我有一個含50個元素的豆子,我已經犯了錯誤嗎? 這是一種消極模式嗎?
我怎么能以更聰明的方式做到這一點? 是否有一些庫將返回給定JavaBean的元素集合,使用反射或類似的東西?
如果您的類是JavaBean,我建議不要直接訪問這些字段,而是使用JavaBeans / BeanInfo機制。 您可以直接使用Introspector
或通過Apache Commons / BeanUtils或Spring的BeanWrapper
抽象等輔助庫來實現。
請查看我以前的答案以供參考:
它確實聞起來像反模式。 如果您的類只包含數據而沒有業務邏輯,那么最好實現基於HashMap的數據結構,特別是如果數據字段可能在將來發生變化。 但是,如果不了解項目的要求,很難說清楚。
您始終可以使用反射遍歷普通舊Java類的字段。
特別是,使用Class.getFields
方法確定給定類的字段:
Field[] fields = MyJavaBean.class.getFields(); for (Field field : fields) { System.out.println ("Field: " + field.getName()); }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.