Imagine que está creando un proyecto en el que definió dos clases con el mismo nombre pero diferentes paquetes y tiene que usarlas a la vez. En general, debe usar el formato de nombre de clase de punto de nombre de paquete completo para el segundo. Por ejemplo, tenemos una clase llamada ‘cursos’, uno en el paquete «com.gfg.apps» y otro en «com.gfg_practice.apps», podemos usar uno de ellos usando la importación simple y si queremos usar el segundo tenemos que usar el nombre completo del paquete como «com.gfg_practice.apps.courses».
En Kotlin , tenemos una solución para esto llamada Type aliases . Los alias de tipo proporcionan un nombre alternativo para los tipos existentes (en nuestro caso, es una clase).
En nuestro escenario anterior, podemos hacer:
typealias course = com.gfg_practice.apps.courses
y usar los cursos de clase del paquete «com.gfg_practice.apps» en cualquier lugar que queramos sin definir la versión más larga cada vez que lo usamos.
Programa Kotlin para demostrar alias de tipo –
Java
// here we define a type alias named Login_details // which will take two strings as parameters typealias Login_detials = Pair <String, String> fun main() { // we are setting two users but we don't // have to define Pair each time while using it val my_details = Login_detials("Username1", "Password1") //instead we can directly use our type alias Credentials. val my_details2 = Login_detials("Username2", "Password2") println(my_details) println(my_details2) }
Producción:
(Username1, Password1) (Username2, Password2)
Programa Kotlin para demostrar –
Java
typealias Number<T> = (T) -> Boolean // defined a type alias named Number, > is used as a separator here fun main() { //it is used to loop through each element of the below list val x: Number<Int> = { it > 0 } //filter method only print those element which // satisfies the condition (numbers > 0) println("Positive numbers in the list are: " +listOf(11, -1, 10, -25, 55 , 43, -7).filter(x)) }
Producción:
Positive numbers in the list are: [11, 10, 55, 43]