Re: [Switch()...case]From String to enum
Daniel Moyne wrote:
To extend this topic a little bit : in Java is there any simple built-in
method to get the whole collection of instances already created of a
class ; here the whole collection of instances can easily be accessed with
values() ; then iteration is made possible to search for a particular
instance fulfilling some conditions (here the unique member = a particular
value) ?
Only for enums.
You can, of course, create your own Collection (Set, List, Map) of instances
of any non-enum class. There is a more-or-less standard idiom for that,
called a "registry".
public class RegisteredInstance
{
private static final Map <String, RegisteredInstance> registry =
new ConcurrentHashMap <String, RegisteredInstance> ();
private final String name;
public RegisteredInstance( String n )
{
if ( n == null )
{
throw new IllegalArgumentException( new NullPointerException(
"name is null" ));
}
name = n;
registry.put( name, this );
}
// add @Overrides for equals(), hashCode()
// add other logic, including registry access
}
If you don't need associative lookup of the instances, you could use a Set or
a List for the registry instead, and iterate at need.
--
Lew
That is not the right way to use a semicolon in English.