A simple code that i wanted to share:
List methods / attributes and the call of method without parameters
-Aclass is a simple class that will be loaded by java reflect
-An instance will be created and manipulated
package com.exemple.reflect;
public final class Aclass {
public int i;
public Aclass() {
i = 50;
}
public Aclass(int i) {
this.i = i;
}
public int computeSquare() {
return i*i;
}
}
package com.exemple.reflect;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Arrays;
public final class MainClass {
private static String CLASS_NAME = "com.exemple.reflect.Aclass";
private static Aclass instance;
private static Class theClass;
static {
try {
theClass = Class.forName(CLASS_NAME);
instance = (Aclass) theClass.newInstance();
}catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String... args) {
System.out.println("List of methods");
Arrays.asList(theClass.getDeclaredMethods()).stream().forEach(System.out::println);
System.out.println("List of attributes");
Arrays.asList(theClass.getDeclaredFields()).stream().forEach(System.out::println);
System.out.println("Running first method");
Method method = theClass.getDeclaredMethods()[0];
try {
System.out.println(method.invoke(instance));
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
e.printStackTrace();
}
}
}