我目前收到错误代码
TOOLS.java:48:错误:不兼容的类型:ToolItem []无法转换为int []
运行从.class扩展的程序时。
问题在于
行int indEX = SearchArray(toolArray, srchnum);
我不确定问题是什么。我唯一能想到的是toolArray包含有关ToolItem类工具的信息,它包含字符串以及整数和双精度,用于存储工具信息,如名称/ ID /数量等。我不知道我去了哪里错误。如果需要,我可以发布.class
public class TOOLS extends ToolItem
{
// Private members
private int numberOfItems;
private ToolItem[] toolArray = new ToolItem[10];
Scanner keyboard = new Scanner(System.in);
public TOOLS()
{
int numberOfItems = 0;
for (int i=0; i<10; i++)
toolArray[i] = new ToolItem();
}
// search method
public static int SearchArray(int[] toolArray, int srchnum)
{
int i=0;
while (i < toolArray.length)
{
if (toolArray[i] == srchnum)
return i;
else
i++;
}
return -1;
}
// calling search method
public void main(String[] args)
{
int srchnum;
System.out.println("Enter a toolID to search: ");
srchnum = keyboard.nextInt();
int indEX = SearchArray(toolArray, srchnum);
if (indEX == -1)
System.out.println(" " + srchnum + "No ID match");
else
System.out.println(" " + srchnum + "was found at " + indEX);
}
}
答案 0 :(得分:0)
您宣布private ToolItem[] toolArray = new ToolItem[10];
但是您正在调用要求int
数组的函数:
public static int SearchArray(int[] toolArray, int srchnum)
根据您的代码,您似乎正在尝试按数组中的索引进行搜索?您可以更改您正在调用的函数的参数,然后使用指定数组上的getIndex()
方法将索引与srchnum
进行比较。
//Changed first parameter type
public static int SearchArray(ToolItem[] toolArray, int srchnum)
{
int i=0;
while (i < toolArray.length)
{
//Get the index of the toolArray at position 'i'
if (toolArray[i].getIndex() == srchnum)
return i;
else
i++;
}
return -1;
}