<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Lambda的范圍 對于lambdab表達式外部的變量,其訪問權限的粒度與匿名對象的方式非常類似。你能夠訪問局部對應的外部區域的局部final變量,以及成員變量和靜態變量。 #### 訪問局部變量 我們可以訪問lambda表達式外部的final局部變量: ``` final int num = 1; Converter<Integer, String> stringConverter = (from) -> String.valueOf(from + num); stringConverter.convert(2); // 3 ``` 但是與匿名對象不同的是,變量num并不需要一定是final。下面的代碼依然是合法的: ``` int num = 1; Converter<Integer, String> stringConverter = (from) -> String.valueOf(from + num); stringConverter.convert(2); // 3 ``` 然而,num在編譯的時候被隱式地當做final變量來處理。下面的代碼就不合法: ``` int num = 1; Converter<Integer, String> stringConverter = (from) -> String.valueOf(from + num); num = 3; ``` 在lambda表達式內部企圖改變num的值也是不允許的。 #### 訪問成員變量和靜態變量 與局部變量不同,我們在lambda表達式的內部能獲取到對成員變量或靜態變量的讀寫權。這種訪問行為在匿名對象里是非常典型的。 ``` class Lambda4 { static int outerStaticNum; int outerNum; void testScopes() { Converter<Integer, String> stringConverter1 = (from) -> { outerNum = 23; return String.valueOf(from); }; Converter<Integer, String> stringConverter2 = (from) -> { outerStaticNum = 72; return String.valueOf(from); }; } } ``` #### 訪問默認接口方法 還記得第一節里面formula的那個例子么? 接口Formula定義了一個默認的方法sqrt,該方法能夠訪問formula所有的對象實例,包括匿名對象。這個對lambda表達式來講則無效。 默認方法無法在lambda表達式內部被訪問。因此下面的代碼是無法通過編譯的: ``` Formula formula = (a) -> sqrt( a * 100); ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看