返回java中的数组?
在我的程序中,我试图返回prevScore[I]和prevScoreName[I]。但是,两个返回语句都有错误,指出它们是不兼容的类型required int[],found int。我觉得这可能是我在下面的主项目前两行中定义它们的方式。任何帮助都将不胜感激返回java中的数组?,java,arrays,Java,Arrays,在我的程序中,我试图返回prevScore[I]和prevScoreName[I]。但是,两个返回语句都有错误,指出它们是不兼容的类型required int[],found int。我觉得这可能是我在下面的主项目前两行中定义它们的方式。任何帮助都将不胜感激 prevScore = scoreChange (prevScore, score); prevScoreName = nameChange (prevScoreName, newName); public static int[] sc
prevScore = scoreChange (prevScore, score);
prevScoreName = nameChange (prevScoreName, newName);
public static int[] scoreChange (int prevScore[], int score)
{
for (i=1; i<prevScore.length;i++){
prevScore[i] = score;
}
return prevScore[i];
}
public static String[] nameChange (String prevScoreName[], String newName)
{
for (i=1; i<prevScoreName.length;i++){
prevScoreName[i] = newName;
}
return prevScoreName[i];
}
您没有返回阵列:
return prevScoreName[i]; // Returns the String at index 'i'
return prevScore[i]; // Returns the integer at index 'i'
如果要返回实际数组,则需要丢失[i]:
此外,甚至不需要归还任何东西:
prevScore = scoreChange (prevScore, score);
prevScoreName = nameChange (prevScoreName, newName);
您正在通过函数调用修改这些数组的内容。如果您只想从每个函数返回一项,请将返回类型更改为int和String,而不是int[]和String[]。如果要返回整个数组,则将return语句更改为returnprevscore;并返回名称;没有[i]
请注意,不需要返回整个数组-调用者已经有了对它的引用。只需将返回类型更改为void,删除返回语句,并在调用前删除赋值。看起来您可能不懂数组。 当你说 public static int[]您正在引用整个数组。不是它的所有内容,而是指向数组所在的内存空间。 当你说 publicstaticint指的是一个整数 在方法中,您将返回类型声明为int[],这意味着您将返回一个完整的整数数组。但是您的return语句试图返回prevScore[i],它是一个整数,恰好包含在数组中。如果你写了以下内容,情况也会一样:
int var = prevScore[i];
return var;
在本例中,更容易看出您正在返回一个整数
整数数组与整数数组不同,因此当编译器希望看到整数数组时,试图发回单个整数时,编译器不知道该怎么办
int var = prevScore[i];
return var;