Java Error: "incompatible types: int cannot be converted to Player
Java Error: "incompatible types: int cannot be converted to Player
我在使用我的代码时遇到问题,无法弄清楚如何补救我收到的错误。我在包含 team[index] = temp; 的行中收到错误 "incompatible types: int cannot be converted to Player"任何指导将不胜感激。我是 Java 的新手,这是我第一次尝试使用选择排序。我已经尝试环顾四周并进行搜索,但在用它敲打我的头 3 天后仍然没有弄清楚这个错误。提前致谢!
public static void selectionSort(Player[] team, int team_size)
{
int index;
int smallestIndex;
int minIndex;
int temp;
for (index = 0; index < team_size - 1; index++)
{
smallestIndex = index;
for (minIndex = index + 1; minIndex < team_size; minIndex++)
if(team[minIndex].getNumber() < team[smallestIndex].getNumber())
smallestIndex = minIndex;
temp = team[smallestIndex].getNumber();
team[smallestIndex] = team[index];
team[index] = temp;
}
}
team[index] = temp;
temp
是一个 int
,由您的方法定义。 team
是 Player
个对象的数组,因此 team[index]
是一个 Player
。您正在尝试将此行上的 int
分配给 Player
。
请注意,您在此处设置 temp
的值:
temp = team[smallestIndex].getNumber();
我发现你的代码有点难以阅读,因为我真的不知道上下文,但你应该确保你总是分配 team[someIndex]
一个 Player
对象。
这里的问题就是错误的意思。参数 team
是 Player
个对象的数组。 temp
只是一个整数。因此,当您尝试设置 team[index]
,这是一个 Player 对象时,它无法做到这一点。
你只是想交换排序中的两个玩家吗?也许 temp 应该是 Player
Player temp;
然后进行交换
temp = team[smallestIndex]; //returns the actual Player instance rather than getNumber();
team[smallestIndex] = team[index];
team[index] = temp;
此外,您可能不想传入 team_size
,因为您可以使用 team.length
获取玩家数组的长度。这样您就不必每次都传递正确的长度。你的 for 循环看起来像这样
for (index = 0; index < team.length; index++)
我在使用我的代码时遇到问题,无法弄清楚如何补救我收到的错误。我在包含 team[index] = temp; 的行中收到错误 "incompatible types: int cannot be converted to Player"任何指导将不胜感激。我是 Java 的新手,这是我第一次尝试使用选择排序。我已经尝试环顾四周并进行搜索,但在用它敲打我的头 3 天后仍然没有弄清楚这个错误。提前致谢!
public static void selectionSort(Player[] team, int team_size)
{
int index;
int smallestIndex;
int minIndex;
int temp;
for (index = 0; index < team_size - 1; index++)
{
smallestIndex = index;
for (minIndex = index + 1; minIndex < team_size; minIndex++)
if(team[minIndex].getNumber() < team[smallestIndex].getNumber())
smallestIndex = minIndex;
temp = team[smallestIndex].getNumber();
team[smallestIndex] = team[index];
team[index] = temp;
}
}
team[index] = temp;
temp
是一个 int
,由您的方法定义。 team
是 Player
个对象的数组,因此 team[index]
是一个 Player
。您正在尝试将此行上的 int
分配给 Player
。
请注意,您在此处设置 temp
的值:
temp = team[smallestIndex].getNumber();
我发现你的代码有点难以阅读,因为我真的不知道上下文,但你应该确保你总是分配 team[someIndex]
一个 Player
对象。
这里的问题就是错误的意思。参数 team
是 Player
个对象的数组。 temp
只是一个整数。因此,当您尝试设置 team[index]
,这是一个 Player 对象时,它无法做到这一点。
你只是想交换排序中的两个玩家吗?也许 temp 应该是 Player
Player temp;
然后进行交换
temp = team[smallestIndex]; //returns the actual Player instance rather than getNumber();
team[smallestIndex] = team[index];
team[index] = temp;
此外,您可能不想传入 team_size
,因为您可以使用 team.length
获取玩家数组的长度。这样您就不必每次都传递正确的长度。你的 for 循环看起来像这样
for (index = 0; index < team.length; index++)