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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 方法引用 Java 8 方法引用沒有歷史包袱。方法引用組成:類名或對象名,后面跟`::`\[^4\],然后跟方法名稱。 ~~~java // functional/MethodReferences.java import java.util.*; interface Callable { // [1] void call(String s); } class Describe { void show(String msg) { // [2] System.out.println(msg); } } public class MethodReferences { static void hello(String name) { // [3] System.out.println("Hello, " + name); } static class Description { String about; Description(String desc) { about = desc; } void help(String msg) { // [4] System.out.println(about + " " + msg); } } static class Helper { static void assist(String msg) { // [5] System.out.println(msg); } } public static void main(String[] args) { Describe d = new Describe(); Callable c = d::show; // [6] c.call("call()"); // [7] c = MethodReferences::hello; // [8] c.call("Bob"); c = new Description("valuable")::help; // [9] c.call("information"); c = Helper::assist; // [10] c.call("Help!"); } } ~~~ 輸出結果: ~~~ call() Hello, Bob valuable information Help! ~~~ **\[1\]**我們從單一方法接口開始(同樣,你很快就會了解到這一點的重要性)。 **\[2\]**`show()`的簽名(參數類型和返回類型)符合**Callable**的`call()`的簽名。 **\[3\]**`hello()`也符合`call()`的簽名。 **\[4\]**`help()`也符合,它是靜態內部類中的非靜態方法。 **\[5\]**`assist()`是靜態內部類中的靜態方法。 **\[6\]**我們將**Describe**對象的方法引用賦值給**Callable**,它沒有`show()`方法,而是`call()`方法。 但是,Java 似乎接受用這個看似奇怪的賦值,因為方法引用符合**Callable**的`call()`方法的簽名。 **\[7\]**我們現在可以通過調用`call()`來調用`show()`,因為 Java 將`call()`映射到`show()`。 **\[8\]**這是一個**靜態**方法引用。 **\[9\]**這是**\[6\]**的另一個版本:對已實例化對象的方法的引用,有時稱為*綁定方法引用*。 **\[10\]**最后,獲取靜態內部類中靜態方法的引用與**\[8\]**中通過外部類引用相似。 上例只是簡短的介紹,我們很快就能看到方法引用的所有不同形式。
                  <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>

                              哎呀哎呀视频在线观看