(澳门银河官网下载) 请问布尔值方法是怎么理解
澳门银河官网
澳门银河官网
当前位置 : 澳门银河官网 > 澳门银河官网下载

(澳门银河官网下载) 请问布尔值方法是怎么理解

  1. 描述你的问题

越学越糊涂了,这布尔值方法怎么理解呢?看代码,每次在最后return XX;的时候总是有点理解不了,特别是看API的时候......请问用下面这段代码讲解一下,怎么理解这种有布尔值的方法?

这段代码有两个return.....

  1. 贴上相关代码

private boolean downURlToStreamString url, OutputStream outputStream {

                BufferedInputStream in = null;
                BufferedOutputStream out = null;
                HttpURLConnection http = null;

                try {
                        URL url1 = new URLurl;
                        http = HttpURLConnection url1.openConnection;
                        http.setReadTimeout3000;
                        http.setRequestMethod"GET";
                        in = new BufferedInputStreamhttp.getInputStream, 8 * 1024;
                        out = new BufferedOutputStreamoutputStream, 8 * 1024;

                        int b;
                        while b = in.read != -1 {

                                out.writeb;
                        }

                        return true;
                } catch MalformedURLException e {
                        e.printStackTrace;
                } catch IOException e {
                        e.printStackTrace;
                } finally {
                        if http != null {
                                http.disconnect;
                        }

                        try {
                                if in != null {
                                        in.close;
                                }

                                if out != null {
                                        out.close;
                                }
                        } catch IOException e {
                                e.printStackTrace;
                        }


                }

                return false;
        }
  1. 贴上报错信息

  2. 贴上相关截图

  3. 已经尝试过哪些方法仍然没解决(附上相关链接)

题主需要清楚两点:

  1. 在函数体中,一旦执行了return语句,就会跳出这个函数体,return后面跟的表达式的值就是函数的返回值。

  2. try-catch-finally的复合语句中,如果try中的语句抛出异常,则会直接跳转到相应异常的catch语句中去。无论try中的语句有没有抛出异常,在执行完trycatch中的所有语句后,总会继续执行finally中的语句。

所以,当try中的语句没有任何异常时,其中最后一句return true;语句就会使函数返回true。而如果有异常抛出,则会跳转到相应异常的catch语句中去,从而把try中的return true;给跳过了,这样在执行完finally以后,函数体的最后一个return false;语句被执行,使函数返回false

如果执行了try里面的方法,一旦里面的代码抛了异常就跳出执行后面的代码,如果不抛异常,一旦返回就不再往下执行。

其实我有点看不懂你问什么鬼..

返回值

返回值是一个返回给调用者的信息。如果返回值是boolean,那么就是告诉调用者一个boolean信息。
一般来说,如果该方法是调用某个操作,那么返回 true 表示操作成功,返回 false 表示操作失败。
如果有更复杂的情况,可能会 int 类型。例如有:返回 0 表示操作成功,-1表示操作失败,102表示权限确实,103表示传入参数格式错误 之类的。

Return 语句

return 语句无论在方法体的哪个位置,都会立刻结束方法的运行并返回响应的值。return 语句不唯一,因为根据情况我们需要返回不同的值。

题主的代码

该方法是从指定url中获取内容并写入到outputStream中。返回true表示下载成功,false表示操作失败。
方法体内有 try-catch语句包裹了所有网络操作相关的语句,如果一切顺顺利利,那么程序会运行到try里面的最后一句——也就是return true;——结束方法的运行,并返回true告诉调用者下载成功。
万一出了什么问题,那么程序会抛出 Exception 并被try-catch 捕获。程序继续往下走,finally 语句总会被运行用于资源释放。最后 return false 告诉调用者方法执行出错,也即下载失败。

广告位

澳门银河官网