Buscar..


Observaciones

Un generador de tipos seguros es un concepto, en lugar de una característica de lenguaje, por lo que no está estrictamente formalizado.

Una estructura típica de un constructor de tipo seguro

Una función de constructor único generalmente consta de 3 pasos:

  1. Crea un objeto.
  2. Ejecuta lambda para inicializar el objeto.
  3. Agregue el objeto a estructurar o devuélvalo.

Constructores seguros en las bibliotecas de Kotlin

El concepto de constructores de tipo seguro se usa ampliamente en algunas bibliotecas y marcos de Kotlin, por ejemplo:

  • Anko
  • Wasabi
  • Ktor
  • Especulación

Generador de estructura de árbol de tipo seguro

Los constructores se pueden definir como un conjunto de funciones de extensión que toman expresiones lambda con receptores como argumentos. En este ejemplo, se está construyendo un menú de un JFrame :

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

Estas funciones se pueden usar para construir una estructura de árbol de objetos de una manera fácil:

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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow