Diferencia entre los métodos genéricos de Java y Kotlin

alexrnov:

análogos obtenidos sintaxis construcciones para métodos genéricos en Java y Kotlin:

public <T> void method() {}
fun <T> method() {}

public <T> T method(T... p) { return p[0]; }
fun <T> method(vararg p: T): T? { return p[0] }

public <T extends ClassA> T method(T[] p) { ... }
fun <T : ClassA> method(p: Array<T>): T { ... }

public <T extends ClassA & InterfaceA> T method(T[] p) {}
fun <T : ClassA> method(p: Array<T>): T where T : InterfaceA {}

public void method(Collection<? extends ClassA> collection) {}
fun method(collection: Collection<out ClassA>) {}

public void method(Collection<? super ClassA> collection) {}
fun method(collection: Collection<in ClassA>) {}

public void method(Collection<?> collection) {} 
fun method(collection: Collection<*>) {}

¿Hay otras diferencias adicionales (sintácticamente o conceptual) para los métodos generalizados en Java y Kotlin? O innovaciones para los métodos genéricos en Kotlin? Gracias por cualquier respuesta.

a8_ :

En el código genérico, '?' representa un tipo desconocido. Se le conoce como el comodín. Hay varios usos de un comodín, incluida como el tipo de un campo, variable local o parámetro. Mientras que los tipos ofrece el sistema de tipo de Java comodín, Kotlin no lo hace. Sin embargo, tiene dos cosas diferentes; varianza declaración in situ y las proyecciones de tipo como una alternativa a los tipos de comodines.

tomado de Kotlin vs Java: La mayoría de las diferencias importantes que usted debe saber

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=397263&siteId=1
Recomendado
Clasificación