Java Rules: “Collections.EMPTY_LIST”, “EMPTY_MAP”, and “EMPTY_SET” should not be used

Since the introduction of generics in Java 5, the use of generic types such as List<String> is recommended over the use of raw ones such as List. Assigning a raw type to a generic one is not type safe, and will generate a warning. The old EMPTY_... fields of the Collections class return raw types, whereas the newer empty...() methods return generic ones.

Noncompliant Code Example

List<String> collection1 = Collections.EMPTY_LIST;  // Noncompliant
Map<String, String> collection2 = Collections.EMPTY_MAP;  // Noncompliant
Set<String> collection3 = Collections.EMPTY_SET;  // Noncompliant

Compliant Solution

List<String> collection1 = Collections.emptyList();
Map<String, String> collection2 = Collections.emptyMap();
Set<String> collection3 = Collections.emptySet();

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s