0

cannot find symbol, symbol: method books(int[], int)当我尝试编译以下代码时收到错误消息。

有关我希望代码执行的操作的进一步说明,请参见代码下方。

public class books {

        public void main(String[] args) {

            int searchValue = 0, index;
            int refNum[] = new int[4]; // the array

            refNum[0] = 4; //numbers to refer to (aka to find)
            refNum[1] = 6;
            refNum[2] = 10;
            refNum[3] = 12;
            refNum[4] = 14;                

            int input = Integer.parseInt(enterValue.getText()); //takes user's input
            for (int x = 0; x < refNum.length; x++) {
                    refNum[x] = input; //Tells refNum value to be
            }

            searchValue = input;
            index = books(refNum, searchValue); //"books" is underlined
                if (index != -1) { 
                    binarySearchField.setText("We found: " + index);
                } else {
                    binarySearchField.setText("Sorry! Not Found!");
                }

public static Boolean binarySearch(String [] refNum, int left, int right, String search){
         //Boolean code for later
     }

该程序使用二进制搜索在用户输入数字后查找存储在数组中的值,如果它们匹配则成功找到该项目。用户在文本字段“enterNumber”中输入所需的数字。现在在我的代码中)如果不是因为这件小事,我有 78% 的把握肯定会工作)有一个重要的下划线,不应该是,(我已经在要显示的行旁边评论)

现在我以为我应该把类名放在那里,但显然因为它带有下划线,所以情况并非如此。关于我应该放在那里的任何想法?

我很抱歉这个问题可能对我真正要问的有点误导,我只是不知道如何措辞这个问题。

4

2 回答 2

1

线

index = books(refNum, searchValue); 

似乎加了下划线,因为在类定义中没有调用books将 anint[]和 anint作为参数的方法。books

现在我以为我应该把类名放在那里为什么你认为你必须把类名放在那里?弄清楚你想用这段代码做什么,然后你就会明白那一行的内容(至少在伪代码中)。

此外,您似乎有一个直接在另一个方法中声明的方法。这在java中是不合法的。如果不是这种情况,请向我们显示正确的代码。

于 2013-05-23T02:03:54.307 回答
0

书籍是您班级的名称..这可能是您收到此错误的原因。您不能像方法一样调用构造函数。将类的名称更改为书籍或其他名称..或更改方法的名称

于 2013-05-23T02:13:20.310 回答