Kotlin
Constructeurs de type sûr
Recherche…
Remarques
Un générateur de type sécurisé est un concept, et non une fonctionnalité de langage, de sorte qu'il n'est pas strictement formalisé.
Une structure typique d'un constructeur de type sécurisé
Une seule fonction de constructeur se compose généralement de 3 étapes:
- Créez un objet.
- Exécutez lambda pour initialiser l'objet.
- Ajoutez l'objet pour le structurer ou le renvoyer.
Constructeurs de type sécurisé dans les bibliothèques de Kotlin
Le concept de générateurs sans risque de type est largement utilisé dans certaines bibliothèques et structures de Kotlin, par exemple:
- Anko
- Wasabi
- Ktor
- Spéc
Générateur d'arborescence sécurisé
Les générateurs peuvent être définis comme un ensemble de fonctions d'extension prenant les expressions lambda avec des récepteurs comme arguments. Dans cet exemple, un menu de JFrame
est en cours de construction:
import javax.swing.*
fun JFrame.menuBar(init: JMenuBar.() -> Unit) {
val menuBar = JMenuBar()
menuBar.init()
setJMenuBar(menuBar)
}
fun JMenuBar.menu(caption: String, init: JMenu.() -> Unit) {
val menu = JMenu(caption)
menu.init()
add(menu)
}
fun JMenu.menuItem(caption: String, init: JMenuItem.() -> Unit) {
val menuItem = JMenuItem(caption)
menuItem.init()
add(menuItem)
}
Ces fonctions peuvent ensuite être utilisées pour créer facilement une arborescence d'objets:
class MyFrame : JFrame() {
init {
menuBar {
menu("Menu1") {
menuItem("Item1") {
// Initialize MenuItem with some Action
}
menuItem("Item2") {}
}
menu("Menu2") {
menuItem("Item3") {}
menuItem("Item4") {}
}
}
}
}
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow