[英]Return statement for a string array giving strange result
我正在创建一个String数组,并使用System.out.println打印该数组中的值。 一切正常,一切正常,返回了[南非,英国],但是除非我包含return语句,否则代码不会编译,但是return语句只会转储大量的垃圾“ [Ljava.lang.String; @ 85bdf6”” 。 有什么办法可以组合System.out.println和return语句,使它们执行相同的操作,而我只是出现了[South Africa,England]?
public String[] teamsToProgress()
{
Arrays.sort(teams);
String[] teamsToProgress;
teamsToProgress = new String[2];
String team1 = teams[0].getName();
String team2 = teams[1].getName();
teamsToProgress[0] = team1;
teamsToProgress[1] = team2;
System.out.println(Arrays.toString(teamsToProgress));
return teamsToProgress;
}
这是因为您将String[]
作为返回类型。 将其更改为void
编译。 您可以在此处阅读“垃圾” [Ljava.lang.String;@85bdf6
含义。
但是return语句只是转储了很多垃圾“ [Ljava.lang.String; @ 85bdf6”
那不是return语句,那就是您对返回值所做的事情。 您最有可能使用过
System.out.println(teamsToProgress());
相反,您应该已经在teamsToProgress()
完成了teamsToProgress()
。
System.out.println(Arrays.toString(teamsToProgress()));
在第一种情况下,您将打印数组的toString()
方法返回的内容(某些类型信息和哈希码),在第二种情况下,您将打印数组的内容。
通常,从teamsToProgress()
删除System.out.println(...)
并打印返回值是一个好主意-或使返回值void
,在这种情况下,请为该方法找到一个更好的名称,例如void printTeamsToProgress()
,因此该方法的意图变得更加清晰。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.