返回一个对象错误

时间:2016-02-01 16:40:35

标签: java

我的程序似乎不明白我想要做什么,并希望有人可以提供帮助,我收到错误说我需要返回一个对象,但我有三个返回语句都有不同的条件:

private Door pickADoor(){
    Random rand = new Random();
    int i = rand.nextInt(3);
    if (i == 2){
      return A;
    }
    else if (i == 1){
      return B;
    }
    else if (i == 0){
      return C;
    }
}

A,B和C都是预先定义的对象。

3 个答案:

答案 0 :(得分:3)

你错过了ELSE声明。即使你知道只有三个是可能的,编译器也不知道它并且它对你说'#34;很可能你的方法没有返回语句"

所以:

catalog_product_flat_1

答案 1 :(得分:1)

您可以添加一个默认的return语句,因为无法确定在运行时是否满足您的某个条件,这就是编译器抱怨的原因。

private Door pickADoor(){
    Random rand = new Random();
    int i = rand.nextInt(3);
    if (i == 2){
      return A;
    }
    else if (i == 1){
      return B;
    }
    else if (i == 0){
      return C;
    }

    return A ; // some default value
    }

答案 2 :(得分:0)

由于方法的返回类型为Door,因此,如果没有条件为真,那么它不会返回任何内容。因此,您需要在方法的末尾添加return null;。或者您也可以在else块中返回其他对象。