我是Java的新手,请耐心等待。 我有这种方法,其中返回语句不起作用,因为它不能将对象更改为字符串。我尝试了一些在互联网上找不到的东西。
private BSTNode find(String courseCode) {
BSTNode current = root;
if(current.getCourseCode().compareTo(courseCode)<0){
current = current.left;
}else if (current.getCourseCode().compareTo(courseCode)>0){
current = current.right;
}
//return new BSTNode(current.getCourseCode(), current.getCourseName(), current.getCredits()); //Mottagaren av anropet kan inte konvertera till sträng. Varför?
return current.getCourseName().toString();
}
有人看到我在做什么错吗?
答案 0 :(得分:2)
您的函数应返回BSTNode而不是字符串。如果要返回字符串,请更改
private BSTNode find(String courseCode)
至private String find(String courseCode)
。否则,您应该只返回current
。
您不能仅通过在对象上调用.toString来更改函数的返回类型。返回类型是由方法声明而不是实际返回的值定义的。
答案 1 :(得分:0)
您的函数正在返回类型BSTNode
,但是您正在尝试返回字符串。
将第一行private BSTNode find(String courseCode) {
替换为private String find(String courseCode) {