在主类方法中找不到String方法

时间:2013-12-31 22:47:25

标签: java string class methods main

我有一年的Java编程经验,我在主类中创建了一个静态方法,出于某种原因,每当我编译它时都会给出一个错误,说明String类中的compareTo()方法可以&# 39;找不到。

以下是方法:

 public static void displaySpecificResort(String resortName, Resort[] resortList)  
  {
     int low = 0;
     int high = resortList.length - 1;
     int mid;
     while (low <= high)
     {
        mid = low + (high - low);
        if (resortList[mid].compareTo(resortName)<0) 
           low = mid + 1;
        else if (resortList[mid].compareTo(resortName)>0) 
           high = mid - 1;      
        else resortList[mid].display(); 
     }
     if(resortList[mid].getName().compareTo(resortName)!= 0)
        System.out.println("Resort could not be found.");
  }

这是我尝试编译时给出的错误:

ResortOrganizer.java:157: error: cannot find symbol
        if (resortList[mid].compareTo(resortName)<0) 
                           ^

symbol:方法compareTo(String)   location:class Resort

ResortOrganizer.java:159: error: cannot find symbol
        else if (resortList[mid].compareTo(resortName)>0) 
                                ^

symbol:方法compareTo(String)   location:class Resort

2个错误

有人可以解释为什么这样做吗?我有一种感觉,我忘记了重要的事情。

1 个答案:

答案 0 :(得分:3)

您的Resort方法似乎没有声明compareTo方法。此方法通常属于Comparable接口。确保你的类实现它。

此外,compareTo方法通常实现为接受与调用方法的对象相同类型的参数。因此,您不应该传递String参数,而应传递Resort

或者,您可以比较度假村的名称。例如

if (resortList[mid].getResortName().compareTo(resortName)>0)