Почему оператор return в моем методе не хочет возвращать строку? - PullRequest
0 голосов
/ 09 мая 2019

Я новичок в Java, поэтому, пожалуйста, потерпите меня. У меня есть этот метод, где оператор return не работает, потому что он не может изменить объект в строку. Я попробовал несколько вещей, которые я нашел в интернете безрезультатно.

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();
    }

Кто-нибудь видел, что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 09 мая 2019

Ваша функция должна возвращать BSTNode, а не строку. Если вы хотите вернуть строку, измените private BSTNode find(String courseCode) до private String find(String courseCode). В противном случае вы должны просто вернуть current.

Вы не можете просто изменить тип возвращаемого значения функции, вызвав .toString для объекта. Тип возвращаемого значения определяется объявлением метода, а не тем, что вы фактически возвращаете.

0 голосов
/ 09 мая 2019

Ваша функция возвращает тип BSTNode, но вы пытаетесь вернуть строку.

Заменить первую строку, private BSTNode find(String courseCode) { на private String find(String courseCode) {

...