Java 如何打印数组中的字符串?
目前我有一系列的Java 如何打印数组中的字符串?,java,Java,目前我有一系列的 public Module[]moduleArray = new Module[4]; 为了输出它,我使用 public void displayModules() { for (int i = 0; i < moduleArray.length; i++) { System.out.println(moduleArray[i]); } } public void displayModules() {
public Module[]moduleArray = new Module[4];
为了输出它,我使用
public void displayModules()
{
for (int i = 0; i < moduleArray.length; i++)
{
System.out.println(moduleArray[i]);
}
}
public void displayModules()
{
对于(int i=0;i
但是它正在输出
Module@1f5e4ae5Module@67871079
空
空的
在
模块
类中执行/覆盖toString()
。当您看到Module@xyz
String表示法这是因为Module
类的toString()的唯一实现是对象的实现。由于对象
对模块
一无所知,因此它只输出类名和实例id。类模块
需要一个有意义的toString()
方法。您看到的是默认的Object.toString()
方法的输出。例如,如果Module
具有字符串属性name
和type
,则可以使用toString
方法,如:
@Override
public String toString()
{
return "Module named: " + name + " of type: " + type;
}
然后,您将看到上面返回的字符串,而不是默认的toString
方法的输出。在您的示例模块中,重写数组内容类中的toString()
方法将帮助您在迭代数组时打印数组中的每个值
使用arrays.asList()
utility方法可以快速打印数组内容,而无需迭代数组元素
System.out.println("Convert Array to List " + Arrays.asList(moduleArray));
应该注意的是,由于@user979236在问题中提到了这一点,因此在null
的数组元素上调用toString()
将导致NullPointerException
。您可能需要准备好处理此类案件。@ThomasOwens,这不是真的,因为John没有说“CalltoString”toString
。如果数组中的对象为空,用户将看到null
。NPE不会被抛出。