
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
54 lines
918 B
Plaintext
54 lines
918 B
Plaintext
== Why is this an issue?
|
|
|
|
When all the elements in a Set are values from the same enum, the Set can be replaced with an EnumSet, which can be much more efficient than other sets because the underlying data structure is a simple bitmap.
|
|
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,java]
|
|
----
|
|
public class MyClass {
|
|
|
|
public enum COLOR {
|
|
RED, GREEN, BLUE, ORANGE;
|
|
}
|
|
|
|
public void doSomething() {
|
|
Set<COLOR> warm = new HashSet<COLOR>();
|
|
warm.add(COLOR.RED);
|
|
warm.add(COLOR.ORANGE);
|
|
}
|
|
}
|
|
----
|
|
|
|
|
|
=== Compliant solution
|
|
|
|
[source,java]
|
|
----
|
|
public class MyClass {
|
|
|
|
public enum COLOR {
|
|
RED, GREEN, BLUE, ORANGE;
|
|
}
|
|
|
|
public void doSomething() {
|
|
Set<COLOR> warm = EnumSet.of(COLOR.RED, COLOR.ORANGE);
|
|
}
|
|
}
|
|
----
|
|
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
=== Message
|
|
|
|
Convert this Set to an EnumSet.
|
|
|
|
|
|
endif::env-github,rspecator-view[]
|