我有简单的方法。我无法弄清楚它为什么会抛出错误。提前谢谢!
public static int[] Shift(int[] a)
{
if (a == null) return -1;
...
}
编译器抛出以下错误:
无法隐式将
int
类型转换为int[]
答案 0 :(得分:9)
如果您的数组为null,则返回int。该函数期望int []。您可以返回null或空白数组。
答案 1 :(得分:5)
您正在尝试返回和int但是您的方法需要一组int。 在这种情况下你想要回报什么?
你可以返回一个空数组
return new int[]{};
或包含-1
的数组return new int[]{-1};
答案 2 :(得分:1)
public static int[] Shift(int[] a)
{
if (a == null) return null;
...
}
或
public static int[] Shift(int[] a)
{
if (a == null) return new int[]{};
...
}
因为您的static
方法被定义为具有int[]
返回类型,所以返回类型必须是int数组,而不是int。与任何对象一样,这可以是null
但是根据您的用法,空数组可能更好,以避免调用者处的空引用异常。