<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### 缺少基本類型的函數 讓我們重溫一下`BiConsumer`,看看我們如何創建缺少的針對**int**,**long**和**double**的各種排列: ~~~java // functional/BiConsumerPermutations.java import java.util.function.*; public class BiConsumerPermutations { static BiConsumer<Integer, Double> bicid = (i, d) -> System.out.format("%d, %f%n", i, d); static BiConsumer<Double, Integer> bicdi = (d, i) -> System.out.format("%d, %f%n", i, d); static BiConsumer<Integer, Long> bicil = (i, l) -> System.out.format("%d, %d%n", i, l); public static void main(String[] args) { bicid.accept(47, 11.34); bicdi.accept(22.45, 92); bicil.accept(1, 11L); } } ~~~ 輸出結果: ~~~ 47, 11.340000 92, 22.450000 1, 11 ~~~ 這里使用`System.out.format()`來顯示。它類似于`System.out.println()`但提供了更多的顯示選項。 這里,`%f`表示我將`n`作為浮點值給出,`%d`表示`n`是一個整數值。 這其中可以包含空格,輸入`%n`會換行 — 當然使用傳統的`\n`也能換行,但`%n`是自動跨平臺的,這是使用`format()`的另一個原因。 上例簡單使用了包裝類型,裝箱和拆箱負責它與基本類型之間的來回轉換。 又比如,我們可以將包裝類型和`Function`一起使用,而不去用各種針對基本類型的預定義接口。代碼示例: ~~~java // functional/FunctionWithWrapped.java import java.util.function.*; public class FunctionWithWrapped { public static void main(String[] args) { Function<Integer, Double> fid = i -> (double)i; IntToDoubleFunction fid2 = i -> i; } } ~~~ 如果沒有強制轉換,則會收到錯誤消息:“Integer cannot be converted to Double”(**Integer**無法轉換為**Double**),而使用**IntToDoubleFunction**就沒有此類問題。**IntToDoubleFunction**接口的源代碼是這樣的: ~~~java @FunctionalInterface public interface IntToDoubleFunction { double applyAsDouble(int value); } ~~~ 因為我們可以簡單地寫`Function <Integer,Double>`并產生正常的結果,所以用基本類型的唯一原因是可以避免傳遞參數和返回結果過程中的自動裝箱和自動拆箱,進而提升性能。 似乎是考慮到使用頻率,某些函數類型并沒有預定義。 當然,如果因為缺少針對基本類型的函數式接口造成了性能問題,你可以輕松編寫自己的接口( 參考 Java 源代碼)——盡管這里出現性能瓶頸的可能性不大。
                  <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>

                              哎呀哎呀视频在线观看