"无法返回void结果类型的值"错误

时间:2016-07-13 20:03:38

标签: java android android-studio

以下代码来自this回答

try {
        // get all the interfaces
        List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces());
        //find network interface wlan0  
        for (NetworkInterface networkInterface : all) {
            if (!networkInterface.getName().equalsIgnoreCase("wlan0")) continue;
        //get the hardware address (MAC) of the interface    
            byte[] macBytes = networkInterface.getHardwareAddress();
            if (macBytes == null) {
                return "";
            }


            StringBuilder res1 = new StringBuilder();
            for (byte b : macBytes) {
                //gets the last byte of b
                res1.append(Integer.toHexString(b & 0xFF) + ":");
            }

            if (res1.length() > 0) {
                res1.deleteCharAt(res1.length() - 1);
            }
            return res1.toString();
        }
    } catch (Exception ex) {
           ex.printStackTrace();
    }

我在这两行上收到错误Cannot return a value with void result typereturn "";return res1.toString();我把代码放在public void onStart()内如何解决这个问题,你能告诉我原因吗?这个问题?

3 个答案:

答案 0 :(得分:2)

而不是返回一个空字符串,而只是return;

void的方法不返回任何内容,但如果不满足某些条件,可以使用return语句终止操作!

我希望这有帮助!

答案 1 :(得分:1)

您需要更改行

public void onStart()

public String onStart()

这是因为你返回一个String,而void函数不返回任何数据。

如果该方法无法更改为String返回类型,那么您可以将该字符串放入您在程序中先前声明的变量中,然后使用

return;

退出方法。

答案 2 :(得分:0)

问题很明显,您正在为函数public void onStart()返回一个值。您将返回类型声明为void,但是您有return语句。

尝试不同的方法来返回值,例如将其放入请求/会话或静态变量(不推荐)等