我有一个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