【发布时间】:2016-08-06 21:45:48
【问题描述】:
我有这个简单的课程:
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 方法,因此无法正常工作。当您尝试打印数组时,它给了我相同的结果。而且我不知道如何将它们放入循环中,因为它们被声明为对象。遍历类的属性并打印它们的最佳方法是什么?
编辑:有些人急于提到重复的问题是关于所有相同类型(字符串)的属性,因此不需要使用对象,问题也不相同。尝试通过阅读整个内容来提供帮助总是一个好主意,即使这比通过简单地标记一个问题来感觉重要更难。
【问题讨论】:
-
谢谢,但在您提供的情况下,所有属性都是字符串。所以迭代没有问题,也不需要使用Object。
-
“没有
toString()方法”是什么意思?所有变量,除了基本类型,都通过继承具有toString()。 -
一旦在循环中将它们声明为Object,就只能使用Object接口中的方法。它们不再被视为布尔值或字符串
-
toString()是Object上的一个方法,至少按照docs是这样的 -
我在 Eclipse 上得到的结果与尝试打印数组时得到的结果相同。有时间可以自己试试。
标签: java