我有大约一年的 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/