Maison > Java > javaDidacticiel > Comment créer une méthode d'extension Java

Comment créer une méthode d'extension Java

WBOY
Libérer: 2023-05-26 23:23:12
avant
1720 Les gens l'ont consulté

    Introduction

    Utilisez des méthodes d'extension pour "ajouter" des méthodes à un type existant sans créer de nouveau type dérivé, recompiler ou modifier de toute autre manière le type d'origine. Bien qu’une méthode d’extension soit une forme spéciale de méthode statique, elle peut être appelée comme une méthode d’instance d’un type d’extension. Pour le code client écrit en C# et Visual Basic, il n'y a pas de différence significative entre l'appel d'une méthode d'extension et l'appel de la méthode réellement définie dans le type.

    Langues prenant en charge les méthodes d'extension

    En fait, de nombreux langages de programmation prennent en charge les méthodes d'extension, telles que C#, Visual Basic, Kotlin, etc., mais notre langage Java ne les prend pas en charge depuis longtemps dans JDK9. , il a commencé à prendre en charge l'extension par jmod. Pour les fonctions Java, le JDK16 promet de fournir des solutions d'appel de bibliothèque dynamique, mais en tant qu'utilisateurs clés du JDK8, si nous voulons également utiliser des méthodes d'extension, nous devons trouver un autre moyen.

    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));
        }
    }
    Copier après la connexion

    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
    Copier après la connexion

    Kotlin

    // 扩展函数(本类中扩展方法)
    class Test1 {
        var name: String = "boyi.chen"
    }
    fun Test1.temp() {
        println("增加扩展函数,打印扩展类的属性name=${this.name}")
    }
    fun main(args: Array<String>) {
        // 调用位置
        Test1().temp()
    }
    Copier après la connexion

    Le protagoniste apparaît

    Java8 lui-même ne prend pas en charge les méthodes d'extension, mais nous pouvons implémenter les méthodes d'extension via des plug-ins. C'est la même chose que d'utiliser directement les méthodes d'extension. est l'un des plug-ins.

    Lombok @ExtensionMethod

    Grâce à l'annotation Lombok @ExtensionMethod, cela nous aide à générer des méthodes statiques qui sont directement appelées lors de la compilation du programme. Bien sûr, le plug-in IDEA peut fournir un meilleur support. Jetons un coup d'œil aux exemples spécifiques ci-dessous.

    /**
     * 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);
            }
        }
    }
    Copier après la connexion

    Vous pouvez voir dans le contenu compilé que la méthode a été convertie de "".isBlank() en LombokTest.StringUtil.isBlank(""). C'est ainsi que Lombok nous fournit le sucre syntaxique de l'extension. méthode. Vraiment si douce.

    Comment créer une méthode dextension Java

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Étiquettes associées:
    source:yisu.com
    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal