亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java擴展方法怎么創建

發布時間:2023-05-06 11:35:21 來源:億速云 閱讀:126 作者:iii 欄目:開發技術

這篇文章主要講解了“Java擴展方法怎么創建”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java擴展方法怎么創建”吧!

    引言

    擴展方法能夠向現有類型“添加”方法,而無需創建新的派生類型、重新編譯或以其他方式修改原始類型。擴展方法是一種特殊的靜態方法,但可以像擴展類型上的實例方法一樣進行調用。對于用 C# 和 Visual Basic 編寫的客戶端代碼,調用擴展方法與調用在類型中實際定義的方法沒有明顯的差異。

    支持擴展方法的語言

    其實比較多的編程語言都支持了擴展方法,如C#、Visual Basic、Kotlin等,但我們的Java語言就是遲遲不支持,在JDK9中開始支持以jmod方式擴展java功能,JDK16承諾給出動態庫調用方案,但是作為JDK8的釘子戶的我們如果也想使用擴展方法,就得另尋他路了。

    C#

    /// 擴展方法
    public static class ExpandMethod {
        /// 兩個數相加
        public static int Sum(this int num,int num2) {
            return num + num2;
        }
    }
    public class Program {
        static void Main(string[] args) {
            /// 調用位置
            Console.WriteLine(3.Sum(2));
        }
    }

    Visual Basic

    Imports System.Runtime.CompilerServices
    Module Module3
        Sub Main()
            Dim ex As New ExampleClass
            ' 調用位置
            ex.ExampleMethod("Extension method")
        End Sub 
        Class ExampleClass
            ' Define an instance method named ExampleMethod. 
            Public Sub ExampleMethod()
                Console.WriteLine("Instance method")
            End Sub 
        End Class
        <Extension()> 
        Sub ExampleMethod(ByVal ec As ExampleClass, 
                ByVal stringParameter As String)
            Console.WriteLine(stringParameter)
        End Sub 
    End Module

    Kotlin

    // 擴展函數(本類中擴展方法)
    class Test1 {
        var name: String = "boyi.chen"
    }
    fun Test1.temp() {
        println("增加擴展函數,打印擴展類的屬性name=${this.name}")
    }
    fun main(args: Array<String>) {
        // 調用位置
        Test1().temp()
    }

    主角登場

    Java8本身不支持擴展方法,但我們可以通過插件的方式實現擴展方法,用起來跟直接使用擴展方法一樣一樣的,Lombok就是其中的一款插件。

    Lombok @ExtensionMethod

    通過Lombok @ExtensionMethod注解,程序編譯期間幫我們生成直接調用的靜態方法,當然IDEA插件能提供更好的支持,下邊看下具體的例子。

    /**
     * lombok測試
     *
     * @author reboot
     */
    @ExtensionMethod(StringUtil.class)
    public class LombokTest {
        public static void main(String[] args) {
            System.out.println("".isBlank());
        }
        /**
         * 字符串工具
         *
         * @author reboot
         */
        public static class StringUtil {
            /**
             * 字符串判空
             *
             * @param targetStr 目標str
             * @return boolean
             */
            public static boolean isBlank(String targetStr) {
                return targetStr == null || "".equals(targetStr);
            }
        }
    }

    編譯后的內容可以看到方法已經從 "".isBlank() 轉換為 LombokTest.StringUtil.isBlank(""),Lombok也正是通過這種方式提供給我們擴展方法的語法糖,真的好甜。

    Java擴展方法怎么創建

    感謝各位的閱讀,以上就是“Java擴展方法怎么創建”的內容了,經過本文的學習后,相信大家對Java擴展方法怎么創建這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    秭归县| 景泰县| 荣昌县| 香河县| 清镇市| 南皮县| 定陶县| 英超| 鄂托克旗| 阿城市| 开原市| 敖汉旗| 霍邱县| 平陆县| 田林县| 清丰县| 荥经县| 千阳县| 集安市| 齐河县| 于田县| 马边| 嘉善县| 弥勒县| 都兰县| 南安市| 丹寨县| 马山县| 德保县| 济源市| 云和县| 亳州市| 延寿县| 湟源县| 宁都县| 朝阳市| 嘉黎县| 凤凰县| 全椒县| 潼关县| 锡林浩特市|