package com.levelup.java.collections; import static org.junit.Assert.assertTrue; import java.util.Collections; import java.util.Map; import org.apache.commons.collections.MapUtils; import org.junit.Test; import com.google.common.base.Objects; import com.google.common.collect.ImmutableMap; /** * This java example will demonstrate how to return an empty map. * * @author Justin Musgrove * @see <a href='http://www.leveluplunch.com/java/examples/return-empty-map-instead-of-null/'>Return empty map</a> */ public class ReturnEmptyMap { @Test public void return_empty_map_java () { Map<String, String> emptyMap = Collections.emptyMap(); assertTrue(emptyMap.isEmpty()); } @Test public void return_empty_map_guava () { Map<String, String> emptyMap = ImmutableMap.of(); assertTrue(emptyMap.isEmpty()); } @Test public void return_empty_map_apache_commons () { @SuppressWarnings("unchecked") Map<String, String> emptyMap = MapUtils.EMPTY_MAP; assertTrue(emptyMap.isEmpty()); } /** * Used for post example */ class DomainObject { Map<String, String> getMap () { return null; } } /** * Used for post example */ @SuppressWarnings("unused") private void return_empty_map_java_exception () { DomainObject domain = null; // dao populate domain Map<String, String> mapOfStrings; if (domain != null && domain.getMap() != null && !domain.getMap().isEmpty()) { mapOfStrings = domain.getMap(); } else { mapOfStrings = Collections.emptyMap(); } //... } /** * Used for post example */ @SuppressWarnings({ "unused" }) private void return_empty_map_guava_exception () { DomainObject domain = null; // dao populate domain Map<String, String> mapOfStrings = Objects.firstNonNull( domain != null ? domain.getMap() : null, ImmutableMap.<String, String>of()); //... } /** * Used for post example */ @SuppressWarnings({ "unused", "unchecked" }) private void return_empty_map_apache_commons_exception () { DomainObject domain = null; // dao populate domain Map<String, String> mapOfStrings; if (domain != null && !MapUtils.isEmpty(domain.getMap())) { mapOfStrings = domain.getMap(); } else { mapOfStrings = MapUtils.EMPTY_MAP; } //... } }