import java.lang.reflect.Field;
import java.lang.reflect.Method;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Scanner;
+import java.io.IOException;
class Main {
}
- /**
- * The main() function
- * @param String[] args main() function arguments array
- */
- public static void main(String[] args) {
+ private static void main_A(String[] args) {
if (args.length == 0) {
- System.out.println("Please run with java Main <Class Name to inspect>");
+ System.out.println("Please run with java Main <class name to inspect>");
System.exit(-1);
}
String className = args[0];
for (int i = 0; i < methods.length; i++) {
System.out.println(methods[i]);
}
+ }
+
+ /**
+ * The main() function
+ * @param String[] args main() function arguments array
+ */
+ public static void main(String[] args) {
+ String name = Entiers.class.getName();
+ Class cl = null;
+ Object o = null;
+ try {
+ cl = Class.forName(name);
+ Class[] types = new Class[]{Integer.class};
+ Constructor ct = cl.getConstructor(types);
+ o = ct.newInstance(new Integer(100));
+ }
+ catch (ClassNotFoundException e) {
+ System.out.println("Class name do not exist.");
+ System.exit(-1);
+ }
+ catch (NoSuchMethodException e) {
+ e.printStackTrace();
+ }
+ catch (InstantiationException e) {
+ e.printStackTrace();
+ }
+ catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ catch (InvocationTargetException e) {
+ e.printStackTrace();
+ }
+ Scanner uInput = null;
+ try {
+ uInput = new Scanner(System.in);
+ System.out.println("Saisir le nom de la methode à invoquer:");
+ String method = uInput.next();
+ //TODO: one can build the input list from the method arguments list and types
+ System.out.println("Saisir l'argument entier paramètre de la méthode:");
+ int integer = uInput.nextInt();
+ Method m = cl.getMethod(method, new Class[]{Integer.class});
+ m.invoke(o, integer);
+ }
+ catch (Exception e) {
+ System.out.println("Erreur:");
+ e.printStackTrace();
+ }
+ finally {
+ try {
+ Method mDisplay = cl.getMethod("afficher");
+ mDisplay.invoke(o);
+ }
+ catch (NoSuchMethodException e) {
+ e.printStackTrace();
+ }
+ catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ catch (InvocationTargetException e) {
+ e.printStackTrace();
+ }
+ uInput.close();
+ }
}
}