java - 在主类方法中找不到字符串方法

标签 java string class methods program-entry-point

我有大约一年的 Java 编程经验,我在主类中创建了一个静态方法,由于某种原因,每当我编译它时都会出现错误,指出 String 类中的compareTo() 方法可以'找不到。

方法如下:

 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) 
                           ^

符号:方法compareTo(String) 地点:一流度假村

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

符号:方法compareTo(String) 地点:一流度假村

2 个错误

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

最佳答案

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

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

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

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

关于java - 在主类方法中找不到字符串方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20863935/

相关文章:

java - 将 TableView prefWidthProperty 绑定(bind)到其父容器的 prefWidthProperty 时出现问题

java - é 变成 &195;#169 然后变成 É 我该如何解决这个编码问题?

java - 在 JFreeChart 的 barCharts 条形上垂直显示标签

javascript - JS中的字符串到对象

php - 如何用我自己的文本替换某些 PHP 值?

java - 我必须同步 socket.send 吗?

java - 去掉每个单词末尾的字母 “e” Java

ios - 专门为 VC 函数创建一个 swift 文件

python - 如何打印此类变量?

node.js - 仅覆盖 Node 中类的构造函数