<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之旅 廣告
                > ### 函式接口 簡單來說就是**只定義了一個抽象方法**的接口(Object類的public方法除外),就是函數式接口,并且還提供了注解:**@FunctionalInterface** 常見的四大函式接口: - Consumer 《T》:消費型接口,有參無返回值 - Supplier 《T》:供給型接口,無參有返回值 - Function 《T,R》::函數式接口,有參有返回值 - Predicate《T》: 斷言型接口,有參有返回值,返回值是boolean類型 在四大核心函數式接口基礎上,還提供了諸如BiFunction、BinaryOperation、toIntFunction等擴展的函數式接口,都是在這四種函數式接口上擴展而來的,不做贅述。 **總結:函數式接口的提出是為了讓我們更加方便的使用lambda表達式,不需要自己再手動創建一個函數式接口,直接拿來用就好了.** > ### Lambda表達式 lambda表達式本質上是一段匿名內部類,也可以是一段可以傳遞的代碼。實際上lambda表達式就是函式接口的實現。lambda表達式的參數列表與返回值類型要與函式接口的抽象方法的參數列表與返回類型一致。 Lambad表達式構成,()->{};左側括號表示參數列表,當只有一個參數時,可以省略括號,{}表示lambad的主體,即方法的實現部分,當lambad的主體只有一條語句你時,可以省略{},如果方法需要返回值,也可以省略return。用->來分隔參數列表和Lambad主體。 ep: ``` long a = 12L; Function<Long, String> function = l -> l + ""; System.out.println(function.apply(12L)); ``` > ### 方法的引用 若lambda體中的內容有方法已經實現了,那么可以使用“方法引用” 也可以理解為方法引用是lambda表達式的另外一種表現形式并且其語法比lambda表達式更加簡單 - 對象::實例方法名 ``` Consumer<Object> co = x -> System.out.println(x); // 參數列表及返回類型與調用方法列表一致。 // 上例可以直接寫成 Consumer<Object> co2 = System.out::println; ``` - 類名::實例方法名 ``` BiFunction<String,String,Boolean> bi = (x1, x2) -> x1.equals(x2); // 傳入的第一個參數表示實例對象,之后的參數列表及返回類型與調用方法一致。 // 上例可以直接寫成 BiFunction<String,String,Boolean> bi2 = String::equals; ``` - 類名::靜態方法名 ``` BiFunction<Integer,Integer,Integer> f = (x1, x2) -> Integer.compare(x1, x2); // 參數列表及返回類型與調用方法列表一致。 // 上例可以直接寫成 BiFunction<Integer,Integer,Integer> f2 = Integer::compare; ``` - 對象的創建 ``` // 無參構造 Supplier<String> sup = () -> new String(); // 上例可寫為 Supplier<String> sup1 = String::new; // 有一參數的構造器 Function<String, String> f = x -> new String(x); // 上例可寫為 Function<String, String> f2 = String::new; ``` - 數組的創建 ``` Function<Integer, Integer[]> f = x -> new Integer[x]; // 上例可寫為 Function<Integer, Integer[]> f2 = Integer[]::new; ``` ***** 原文鏈接:https://blog.csdn.net/qq_29411737/article/details/80835658
                  <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>

                              哎呀哎呀视频在线观看