Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.List;
  3.  
  4. enum NumberClass
  5. {
  6. ONE("One"),
  7. TWO("Two"),
  8. THREE("Three");
  9.  
  10. private final String className;
  11.  
  12. NumberClass(String name)
  13. {
  14. className = name;
  15. }
  16.  
  17. String getName()
  18. {
  19. return className;
  20. }
  21. }
  22.  
  23. public class Test
  24. {
  25. public static void main(String[] args)
  26. {
  27. List<NumberClass> numbers = new ArrayList<NumberClass>();
  28.  
  29. numbers.add(NumberClass.ONE);
  30. numbers.add(NumberClass.THREE);
  31. numbers.add(NumberClass.TWO);
  32. numbers.add(NumberClass.ONE);
  33. numbers.add(NumberClass.THREE);
  34. numbers.add(NumberClass.ONE);
  35. numbers.add(NumberClass.TWO);
  36.  
  37. SomeNumber[] nbs = new SomeNumber[numbers.size()];
  38. int i = 0;
  39. for (NumberClass nbC : numbers)
  40. {
  41. SomeNumber nb;
  42. try
  43. {
  44. nb = (SomeNumber) Class.forName(nbC.getName()).newInstance ();
  45. nbs[i++] = nb;
  46. }
  47. // Cleanly handle them!
  48. catch (InstantiationException e) { System.out.println(e); }
  49. catch (IllegalAccessException e) { System.out.println(e); }
  50. catch (ClassNotFoundException e) { System.out.println(e); }
  51. }
  52. for (SomeNumber sn : nbs)
  53. {
  54. System.out.println(sn.getClass().getName() + " " + sn.getValue());
  55. }
  56. }
  57. }
  58.  
  59. // The following must be in their own files, of course
  60. public interface SomeNumber
  61. {
  62. int getValue();
  63. }
  64.  
  65. public class One implements SomeNumber
  66. {
  67. public int getValue() { return 1; }
  68. }
  69. public class Two implements SomeNumber
  70. {
  71. public int getValue() { return 2; }
  72. }
  73. public class Three implements SomeNumber
  74. {
  75. public int getValue() { return 3; }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement