我有一個DTO,有一大堆成員。我想知道Java是否支持爲這個類提供一個for(in)的想法。我不認爲它確實如此,但如果確實如此,它會爲我節省很多痛苦,所以,我想我會把問題拋出去。是否有可能通過java中的類成員循環?
回答
好了,你可以用反射做到這一點:
for (Field field : clazz.getFields())
{
...
}
(或者類似的方法等)
然後,您可以得到的字段值特定實例或靜態值。
+1爲簡明。 – 2009-10-30 22:04:24
非常感謝。謝謝。 – 2009-10-30 22:18:10
是的,請使用Reflection API。特別是,請從Class
檢查getFields
和getMethods
方法。
您可以使用反射來獲取所有成員和函數。
也許你需要問自己爲什麼DTO有這麼多的成員,你認爲這是必要的。可能是重構的時間。
看一看反射框架,你可以反思這個類的信息。
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/reflect/package-summary.html
這樣做,有點麻煩,但。
你必須使用反射。
返回Field對象反映此Class對象所表示的類或接口聲明的所有字段的數組
可以看到一個例子here
有三種獲取字段的方法來自Class對象的對象。
Class cls = java.awt.Point.class;
// By obtaining a list of all declared fields.
Field[] fields = cls.getDeclaredFields();
// By obtaining a list of all public fields,
// both declared and inherited.
fields = cls.getFields();
for (int i=0; i<fields.length; i++) {
Class type = fields[i].getType();
process(fields[i]);
}
// By obtaining a particular Field object.
// This example retrieves java.awt.Point.x.
try {
Field field = cls.getField("x");
process(field);
} catch (NoSuchFieldException e) {
}
見Class類定義了更多的選擇。
- 1. 是否有可能通過VBA(的getElementById)HTML元素循環
- 2. 是否有可能通過Java反射子類檢索的類
- 3. 是否有可能通過文件將循環拆分成多個線程?
- 4. 如何循環通過成員列表?
- 5. 是否有可能通過asp.net mvc中的成員身份進行緩存?
- 6. 是否有可能使QML ListView循環?
- 7. 是否有可能循環此語法
- 8. 是否有可能向後循環?
- 9. 是否有可能循環UIScrollView/UIPageControl?
- 10. 是否有可能檢測到Java中是否有類可用?
- 11. 是否有可能擁有「僅實現」類成員?
- 12. 循環通過郵政成員類別,檢查是否爲(通過名稱)x的後果名稱
- 13. 是否有可能使用QtConcurrent :: run()與類的函數成員
- 14. 循環通過PHP對象成員和值分配給成員
- 15. 是否有可能通過Java中的Double來倍增BigInteger?
- 16. 是否有可能調用java主事件循環?
- 17. 是否有可能在構造函數中用for循環聲明2d數組類成員?
- 18. 當通過自動循環向量時使用子類成員
- 19. 是否有可能通過EasyMock的
- 20. 是否有可能在不同的類中實現類成員函數
- 21. 在C++中循環遍歷Abstract類的所有子類是否可能?
- 22. 循環通過類
- 23. 是否有可能具有boost ::可選的類並調用其成員函數?
- 24. 是否有可能使用循環執行所有類型的類方法
- 25. 處理中的類中是否可以有另一個循環?
- 26. 通過小鬍子中的整數循環,有可能嗎?
- 27. 是否有可能爲r中的循環生成一個seq()的列表?
- 28. 是否有可能在C++中有多態成員重載?
- 29. 通過循環列表循環Java
- 30. 通過Arrayyl循環java循環
什麼是DTO? – CodyBugstein 2013-06-13 19:27:56
您對3.5年前回答的問題提出這個問題? DTO是用於表示數據集的對象,通常與推論數據庫表相關聯。我在這裏和Spring一起使用。我認爲它在大多數JDBC情況下都被使用。 – 2013-06-13 23:39:48
事實上,我是:)在永恆的網絡空間中,更大的計劃中的3.5年是什麼?感謝您的回答。 – CodyBugstein 2013-06-14 15:24:27