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(); } } }