compactObject

Devuelve una copia de un Map sin las claves cuyo valor es null — con un solo nivel de profundidad.

Map<K, V> compactObject<K, V>(Map<K, V?> map)

Lección

compactObject es la contraparte para Map de compact (que quita los null de un Iterable). Viene muy bien para limpiar un formulario o un registro parcialmente relleno antes de serializarlo: descarta los campos que nadie rellenó y conserva el resto.

La limpieza es superficial: solo inspecciona los valores del nivel superior. Un null anidado dos niveles más abajo, dentro de un valor que a su vez es un Map, se queda intacto. Si necesitas una limpieza recursiva, tendrás que escribir esa pasada tú mismo (o volver a llamar a compactObject sobre el mapa anidado antes de montar el exterior).

Demo 1 · Fundamentos

Demo 2 · La prueba de que es superficial

Pruébalo tú

Ejercicio: usa compactObject para descartar las claves con valor null de draft.

Relacionado: compact — la versión para Iterable · isEmpty — una comprobación relacionada basada en el valor · omitBy — la versión general con predicado que esta especializa · evolve — transforma los valores en lugar de descartarlos