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