The Java Program: Main.java
1 import Sorter;
2
3 public class Main {
4
5 static int A [] = {1,3,2,4,9,5};
6
7 public static void main (String[] args) {
8 try {
9 System.out.println ("Creating class for name: "+args[0]);
10 Class c = Class.forName (args[0]);
11 System.out.println ("Class name: " + c.getName());
12 Sorter s = (Sorter) c.newInstance(); // coerce to expected type
13 s.sort (A);
14 for (int i=0; i<A.length; i++) System.out.println (A[i]);
15 } catch (ArrayIndexOutOfBoundsException e) {
16 System.out.println ("Class name required as argument.");
17 e.printStackTrace();
18 } catch (InstantiationException e) {
19 System.out.println ("Instantiation exception.");
20 } catch (IllegalAccessException e) {
21 System.out.println ("Illegal access exception.");
22 } catch (ClassNotFoundException e) {
23 System.out.println ("Class not found exception.");
24 } catch (ClassCastException e) {
25 // class must not have been a 'Sorter' class
26 System.out.println ("Class not a 'Sorter'.");
27 } catch (NoSuchMethodError e) {
28 // class must have a void () constructor
29 System.out.println ("No such method error.");
30 }
31 }
32 }
33