2016-04-21 101 views
-8

我有一个方法,搜索对象的数组列表并返回一个特定的对象的问题。错误是:缺少return语句。以下是代码:如何搜索对象的数组列表并返回特定的对象?

public device lookUp(String theCode){ 
    for (int i = 0; i < availableDevices.size(); i++){ 
     if (availableDevices.get(i).getCode().equals(theCode)){ 
      return availableDevices.get(i); 
     } 
    } 
} 
+2

想什么,如果对象没有找到,会是什么回来? –

+0

您的for循环之后,您需要返回一些内容,如果它在匹配输入参数的for循环中找到,则只返回一些内容。通常人们会做类似返回null或抛出异常等。 – VeenarM

+0

@ D.Noze如果在方法的末尾放置返回语句,则不会再有错误。 – f1sh

回答

1

如果找到对象,则只返回。那么如果没有找到它会怎么做。

只需在循环完成后立即添加return null;即可。它应该解决你的问题。

-1
public device lookUp(String theCode){ 
    String retVal = ""; 
    for (int i = 0; i < availableDevices.size(); i++){ 
     if (availableDevices.get(i).getCode().equals(theCode)){ 
      retVal = availableDevices.get(i); 
     } 
    } 
    return retVal; 
} 
+0

不起作用。 'String'!='device'。 – emlai

+0

OOPS我的坏。公共设备lookup(String theCode){device} retVal = new device();对于(int i = 0; i

1

在这种方法中:

public device lookUp(String theCode){ 
    for (int i = 0; i < availableDevices.size(); i++){ 
     if (availableDevices.get(i).getCode().equals(theCode)){ 
      return availableDevices.get(i); 
     } 
    } 
} 

必须添加返回NULL;如果你的availableDevices里面有0行,那么你的方法改变如下:

public device lookUp(String theCode){ 
    for (int i = 0; i < availableDevices.size(); i++){ 
     if (availableDevices.get(i).getCode().equals(theCode)){ 
      return availableDevices.get(i); 
     } 
    } 
    return null; // no elements in availableDevices 
} 
1

并非所有的执行路径都有一个return语句。在这种情况下,您将遇到编译错误。

尝试类似这样的东西。

public device lookUp(String theCode){ 
    for (int i = 0; i < availableDevices.size(); i++){ 
     if (availableDevices.get(i).getCode().equals(theCode)){ 
      return availableDevices.get(i); 
     } 
    } 
    return null //Device not found 
} 

基本上可能会有一些可能性,您的循环完成时不输入if条件。在这种情况下,该函数没有返回语句。

2

您可以在不返回语句的情况下到达函数的结尾。你的代码应该看起来像:

public device lookUp(String theCode){ 
    device dev = null; 
    for (int i = 0; i < availableDevices.size(); i++){ 
     if (availableDevices.get(i).getCode().equals(theCode)){ 
      dev = availableDevices.get(i); 
      break; 
     } 
    } 
    return dev; 
} 
3

你return语句里面if这意味着它可能会或可能不会返回值,但该方法应该返回一些value.To保证,编译器会强迫你写这个return语句出局条件。

3

试试这个:

public device lookUp(String theCode){ 
for (int i = 0; i < availableDevices.size(); i++){ 
    if (availableDevices.get(i).getCode().equals(theCode)){ 
     return availableDevices.get(i); 
    } 
} 
return null; 
} 
0

实现这样

public device lookUp(String theCode){ 
    device dev = null; 
    for (int i = 0; i < availableDevices.size(); i++){ 
     if (availableDevices.get(i).getCode().equals(theCode)){ 
      dev = availableDevices.get(i); 
     } 
    } 
    return dev; 
} 
  • 在这里,所以你需要先创建 它要返回 “设备” 的对象带空引用,然后在“if”中分配新值并返回 那个对象。
0

按照方法定义,您应该返回设备对象。

public device lookUp(String theCode) 

您正在返回if语句中的设备对象。

如果条件失败,那么如果块和方法不返回任何结果,控件将不会进入内部。 这就是为什么它显示缺少返回错误。

循环后,您return null避免这种错误

相关问题