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.