目前我有一个
阵列public Module[]moduleArray = new Module[4];
并输出它我正在使用
public void displayModules()
{
for (int i = 0; i < moduleArray.length; i++)
{
System.out.println(moduleArray[i]);
}
}
然而它正在输出
模块@ 1f5e4ae5
模块@ 67871079
空
null
答案 0 :(得分:5)
在toString()
课程中实施/覆盖Module
。当您看到Module@xyz
字符串表示时,因为toString()
类的唯一Module
实现是Object
类的实现。由于Object
对Module
一无所知,因此只输出类名和实例ID。
答案 1 :(得分:1)
班级Module
需要有意义的toString()
方法。您所看到的是默认Object.toString()
方法的输出。例如,如果Module
具有字符串属性name
和type
,则可以使用toString
方法:
@Override
public String toString()
{
return "Module named: " + name + " of type: " + type;
}
然后,您将看到上面返回的字符串,而不是默认toString
方法的输出。
答案 2 :(得分:1)
在示例toString()
类中,覆盖数组内容类中的Module
方法将帮助您在迭代数组时打印数组中的每个值。
可以快速打印数组内容而无需迭代数组元素,使用Arrays.asList()
实用程序方法将数组转换为列表。
System.out.println("Convert Array to List " + Arrays.asList(moduleArray));