Since you seem to be interested in, as I explained, here is a brief implementation to verify that this can be done ...
import java.util.ArrayList; import java.util.List; enum NumberClass { ONE("One"), TWO("Two"), THREE("Three"); private final String className; NumberClass(String name) { className = name; } String getName() { return className; } } public class Test { public static void main(String[] args) { List<NumberClass> numbers = new ArrayList<NumberClass>(); numbers.add(NumberClass.ONE); numbers.add(NumberClass.THREE); numbers.add(NumberClass.TWO); numbers.add(NumberClass.ONE); numbers.add(NumberClass.THREE); numbers.add(NumberClass.ONE); numbers.add(NumberClass.TWO); SomeNumber[] nbs = new SomeNumber[numbers.size()]; int i = 0; for (NumberClass nbC : numbers) { SomeNumber nb; try { nb = (SomeNumber) Class.forName(nbC.getName()).newInstance (); nbs[i++] = nb; }
If he does not answer your question, I believe that this is educational material. :-)
Philho
source share