此方法必须返回Object类型的结果

时间:2017-05-21 03:02:01

标签: java compiler-errors linked-list

package LinkedList;

public class LinkedList {

public class Node {
    Object data;
    Node next;
    //Constructor of Node
    Node(Object data){
        this.data = data;
    }
    //getter
    Object getdata(){
        return this.data;
    }
    Node getnext(){
        return this.next;
    }
    //setter
    void setnext(Node n){
        this.next = n;
    }
}

Node header = null;
int size = 0;
//Constructor of LinkedList
public LinkedList(){};
//return size
int size(){
    return size;
}
//return that list is empty or not
boolean isEmpty(){
    if (size != 0){
        return false;
    }
    return true;
}
Object first(){
    return header.getdata();
}
Object Last(int size){
    Node c;
    for(int i=0 ;i<size-1 ;i++){
        c = header.getnext();
        if (i == size-2){
            Object returndata = c.getdata();
            return returndata;
        }
    }
}

}

first()函数在eclipse上没有任何错误。 但在last()函数中,我得到的错误是此方法必须返回Object类型的结果。如何解决这个错误?

2 个答案:

答案 0 :(得分:1)

问题是Last()并不总是返回一个值,即使它声称。每个代码路径都必须返回。

Object Last(int size){
    Node c;
    for(int i=0 ;i<size-1 ;i++){
        c = header.getnext();
        if (i == size-2){
            Object returndata = c.getdata();
            return returndata;
        }
    }
    return null;
}

答案 1 :(得分:1)

您必须在for循环之外还有一个return语句。只有在执行循环并满足条件时才会运行。

如果在循环之外没有任何内容可以返回,请添加return null;作为最后一个语句。