2016-03-09 117 views
-1

我不断收到一个缺少return语句的错误,但我不知道在哪里。每次我按照代码,我都觉得至少有一个if语句提供了return语句。缺少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; 
     } 
    } 
} 
+0

好吧,我想我明白你是什​​么意思。如果我在方法的末尾放置返回语句,那么这意味着最终的返回值是什么?当我在方法结束时返回null时,应用程序会发出错误,所以我不知道该返回什么。当我尝试一个else if语句后返回null时,我仍然得到缺少的返回语句错误。对不起,我对编程很陌生。 – user6036979

+0

如果你的函数是为了“获得...”而返回的东西,那么你将返回函数的目的是“获取”。你的函数被称为“getUsersContaining”,所以你应该返回包含字符串的用户。 – Carcigenicate

+0

发生错误是因为如果'this.capacity' == 0,nameSearch!= null,您的函数将不会返回任何内容,因为它永远不会进入循环。 – Carcigenicate

回答

3

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

你可以把一个包罗万象的return语句在你的方法做事的底好像回到null,或者甚至抛出Exception这将使你不是“返回任何东西”