Java Lambda para Kotlin
Estoy construyendo mi código con Kotlin.
Me encontré con un problema al usar Lambda en Kotlin con lo siguiente:
- java.lang.NoClassDefFoundError $$ inlined $ forEach $ lambda $ 1 en Kotlin
- ¿Cómo convierto una matriz de cadenas a una matriz de Int en Kotlin?
- Kotlin: ambigüedad de resolución de sobrecarga lambda y sobrecarga
- ¿Cómo crear una instancia de interfaz anónima en Kotlin?
- Pase la interfaz como parámetro en Kotlin
Código Java:
((UndertowEmbeddedServletContainerFactory) container) .addBuilderCustomizers(builder -> builder.setServerOption(UndertowOptions.ENABLE_HTTP2, true));
Usar instanciación de interfaz común
((UndertowEmbeddedServletContainerFactory) container) .addBuilderCustomizers(new UndertowBuilderCustomizer() { @Override public void customize(Builder builder) { builder.setServerOption(UndertowOptions.ENABLE_HTTP2, true); } });
Mi código en Kotlin
val c: UndertowEmbeddedServletContainerFactory = (container as UndertowEmbeddedServletContainerFactory) // Calling the Lambda c.addBuilderCustomizers{ (b: Builder) -> b.setServerOption(UndertowOptions.ENABLE_HTTP2, true) }
Me está dando un error de syntax:
Múltiples marcadores en esta línea. Pasar el valor como una vararg solo se permite dentro de una list de arguments entre paréntesis. No se puede inferir un tipo para este parámetro. Por favor especifíquelo explícitamente.
¿Cuál podría ser la syntax correcta para esto?
- La function de extensión de kotlin no entiende cómo funciona esto
- Configuración de oyentes de Android en Kotlin: uso del retorno en lambdas
- Kotlin: comparar los valores de propiedad de diferentes objects objective con (fuera) reflexión
- Kotlin nombró la syntax del parámetro para el cierre / lambda
- ¿Es posible ocultar variables del cierre de lambda?
- Funciones de Lambda con comodines en Kotlin
- Lambda en expresión de object de tipo múltiple
- ¿Cómo declaro un parámetro de function para aceptar funciones que arrojan?
Necesitas ayudar un poco al comstackdor de Kotlin y decirle cuál es el tipo de este lambda. Este código debe comstackrse y funcionar bien:
c.addBuilderCustomizers(UndertowBuilderCustomizer{ it.setServerOption(UndertowOptions.ENABLE_HTTP2, true)})
- package de caja de serpiente detekt
- Retrofit API call: ¿Cómo asegurarse de que el valor no sea nulo después de realizar una llamada de API?