我有这个简单的课程:
public class Events{
Boolean wentToGym;
String eventsToday;
public Events(Boolean wentToGym, String eventsToday){
this.wentToGym = wentToGym;
this.eventsToday = eventsToday;
}
现在由于某种原因,我需要遍历这些字段并打印它们。因为它们来自不同的类型,我想我会在for循环中使用Object声明:
public static void main(String[] args){
Events events = new Events(true, "first trial");
for(Object e: events.getClass().getDeclaredFields){
System.out.println(e.toString);
}
}
不幸的是没有工作,因为该对象没有toString方法。它给了我与尝试打印数组时相同的结果。而且我不知道如何将它们转换为循环内部,因为它们被声明为对象。什么是迭代类的属性并打印它们的最佳方法?
编辑:有些人急于提到重复的问题是关于所有相同类型(字符串)的属性,所以不需要使用对象,问题也是一样的。通过简单地标记问题,即使通过简单而不是感觉重要,通过阅读整个事物来尝试帮助总是一个好主意。
答案 0 :(得分:0)
这是你要找的吗?
import java.util.Arrays;
public class Events {
Boolean wentToGym;
String eventsToday;
public Events(Boolean wentToGym, String eventsToday) {
this.wentToGym = wentToGym;
this.eventsToday = eventsToday;
}
public static void main(String[] args) {
Events events = new Events(true, "first trial");
Arrays.stream(events.getClass().getDeclaredFields()).forEach(field -> {
try {
System.out.println(field.getName() + ": " + field.get(events));
} catch (IllegalAccessException e) {
e.printStackTrace();
}
});
}
}
输出:
wentToGym: true
eventsToday: first trial