【问题标题】:Missing return statement [duplicate]缺少退货声明 [重复]
【发布时间】:2016-06-23 04:24:31
【问题描述】:

我不断收到缺少返回语句的错误,但我不知道在哪里。每次看代码,感觉至少有一个if语句提供了return语句。

代码:

public User[] getUsersContaining(String query) {
   User[]nameSearch = new User[this.capacity];

   if(nameSearch == null)
        return null;
   for (int i=0; i<this.capacity; i++){
       if(this.array[i].getName().contains(query)){
        nameSearch[i]=this.array[i];
        bubbleSort date2 = new bubbleSort();
        date2.bubblesort(nameSearch);
        return nameSearch;
       }
   }
}

【问题讨论】:

  • 好的,我想我明白你的意思了。如果我在方法的末尾放置一个 return 语句,这是否意味着这将是最终的返回值?当我在方法结束时返回 null 时,应用程序会给出一个错误,所以我不知道要返回什么。当我在 if 语句之后尝试 else return null 时,我仍然得到缺少的 return 语句错误。抱歉,我对编程很陌生。
  • 如果你的函数是为了get... 某事,你返回函数是为了“得到”的东西。您的函数称为“getUsersContaining”,因此您应该返回包含该字符串的用户。
  • 发生错误是因为如果this.capacity == 0,并且nameSearch != null,您的函数将不会返回任何内容,因为它永远不会进入循环。

标签: java return


【解决方案1】:

声明返回类型的方法必须为该方法的每个可能的流程分支声明一个返回语句。这意味着基本上你的方法中可能有一个代码流,它不会以 return 语句结束(提示:如果你的 if 语句每次都在循环内返回 false 会发生什么?最终循环将结束并且不会返回任何内容.)

您可以在方法的底部放置一个包罗万象的 return 语句,执行类似返回 null 之类的操作,或者甚至可以抛出一个 Exception,这样您就不会“返回任何东西”

【讨论】:

    猜你喜欢
    • 2012-10-04
    • 2013-07-11
    • 1970-01-01
    • 2011-03-30
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    相关资源
    最近更新 更多