Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

258
Vistas
¿Es posible pasar el tipo nulo en lugar del parámetro de tipo genérico?

Voy a utilizar el siguiente método de las extensiones Spring Data Kotlin:

 inline fun <reified T : Any> MongoOperations.bulkOps(bulkMode: BulkMode, collectionName: String? = null): BulkOperations

La pregunta es: ¿puedo evitar de alguna manera especificar T suponiendo que no quiero proporcionar un nombre de clase de entidad (eso es porque especificaré explícitamente collectionName y, en este caso, el tipo de clase puede ser null ). Me gustaría escribir algo como:

 val ops = mongoTemplate.bulkOps<null>(BulkOperations.BulkMode.UNORDERED, collectionName = "i_know_better")

¿Existe un tipo literal para null con el que pueda parametrizar bulkOps ?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Creo que la respuesta corta es no.

Parece que confundes tipos con valores. null es un valor y no un tipo, por lo que no se puede usar como tipo en métodos genéricos.

En su ejemplo específico, incluso si pudiera usar nulo, mirando el código, ¿qué esperaría que sucediera?

 @Suppress("EXTENSION_SHADOWED_BY_MEMBER") inline fun <reified T : Any> MongoOperations.bulkOps(bulkMode: BulkMode, collectionName: String? = null): BulkOperations = if (collectionName != null) bulkOps(bulkMode, T::class.java, collectionName) else bulkOps(bulkMode, T::class.java)

Como puede ver, siempre se llama a T::class.java . ¿Cuál sería el resultado de null::class.java ?

No estoy familiarizado con Spring Data, por lo que realmente no puedo proporcionar una alternativa, pero diría que necesita buscar otro método o usar una clase apropiada aquí. El tipo genérico está marcado como T : Any , por lo que presumiblemente puede ser cualquier tipo que no admita valores NULL. Me pregunto si la Unit funcionaría. Nuevamente, no estoy seguro de para qué se usa esta clase.

over 4 years ago · Santiago Trujillo Denunciar

0

Para responder a la pregunta en general, puede usar Nothing? para representar el tipo que solo contiene el valor null .

Dicho esto, como ya dijo @Fred, el método que está considerando aquí establece explícitamente T : Any , lo que significa que solo se permiten tipos que no aceptan valores NULL. Y tiene sentido dado que la función está accediendo a la clase de T

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda