Maison > Article > développement back-end > Explication détaillée de la façon d'implémenter des méthodes statiques dans Kotlin similaires à Java ou C#
Comment implémenter des méthodes
statiques dans Kotlin similaires à Java ou C# Cet article résume plusieurs méthodes, à savoir : la fonction au niveau du package , le compagnon Object, fonctions d'extension et déclarations d'objet. Cela oblige chacun à choisir en fonction de différentes situations.
Vous pouvez trouver de nombreux articles de ce type sur Internet. La recommandation officielle concerne les fonctions au niveau du package, et certaines personnes disent d'utiliser des objets compagnons (compagnon1. Fonctions au niveau du package
2. Objet compagnon
Avez-vous déjà remarqué lorsque vous utilisez Java ? Quand les
variables statiques et les méthodes des classes Java sont-elles initialisées ? Est-ce lorsque la méthode statique est appelée pour la première fois ou lorsque la classe Java correspondante est chargée ? La réponse est lorsque la classe Java est chargée (c'est-à-dire que si vous avez appelé les variables d'instance et les méthodes dans la classe Java, même si vous n'avez pas utilisé de variables et de méthodes statiques, les variables statiques ont été initialisées). N’est-il pas approprié de qualifier ce phénomène d’accompagnant ?
fun main(args: Array<String>) { Books.getBestSellers() } class Books(var name: String, val page: Int) { fun getWordCount()=page*100 companion object ComBooks{ var bestSellers=arrayOf("Harry Potter\r\t","Lord of the Rings\r\t") fun getBestSellers() { bestSellers.forEach{v->println(v)} } } }La classe compagnon est déclarée avec compagnon. Elle est chargée dans la classe où se trouve l'objet compagnon, et l'objet compagnon est initialisé, tout comme les membres statiques Java. Elle peut être anonyme ou porter le même nom que la classe conteneur. Il existe deux types d'appels :
ou Books.ComBooks.getBestSellsers()?
Books.getBestSellsers()?。
3. Fonction d'extension
public class Utils { public static boolean isEmpty(String string){ return string != null && string.length() == 0; } public static boolean isWeakEmpty(String string){ return isEmpty(string) && string.trim().length() == 0; } }Bien sûr, nous pouvons utiliser les deux méthodes ci-dessus pour implémenter ces méthodes statiques, mais nous avons une meilleure méthode.
fun String.isEmpty() = this != null && this.length == 0; fun String.isWeakEmpty()= this.isEmpty() && this.trim().length == 0Les deux lignes de code ci-dessus étendent la classe String avec deux fonctions. Ces deux fonctions peuvent être appelées comme leurs fonctions natives. Le code est très beau. En fait, la fonction d'extension ne modifie pas le contenu interne de la classe String et n'ajoute que deux fonctions statiques à String. Cependant, par rapport à la classe Utils de Java, la lisibilité a été grandement améliorée.
4. Déclaration d'objet
object AppInfo{ var AppName = "Kotlin Message" var AppAuthor = "Riley Ge" fun toSimpleString() { println("AppName:$AppName,AppAuthor:$AppAuthor") } }Découvrir. Objets Kotlin Quelle puissance ! Une chose à laquelle tout le monde devrait prêter attention est qu'AppInfo est initialisé paresseusement lors du premier accès, ce qui signifie qu'AppInfo n'est pas initialisé lorsque l'objet est déclaré.
5. Résumé
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!