/* *Stuff by Hyjall */ import java.util.*; import java.lang.reflect.*; public class Reflection { public static void main(String[] args) { try { Scanner myScanner = new Scanner(System.in); System.out.println("Input a class for example java.lang.reflect:"); String s = myScanner.nextLine(); Class c1 = Class.forName(s); if(s != null) { System.out.println(c1); System.out.println(); printFields(c1); System.out.println(); printMethods(c1); System.out.println(); printConstructors(c1); } } catch(Exception e) { e.printStackTrace(); } } public static void printFields(Class c1) { Field[] fields = c1.getDeclaredFields(); System.out.println("FIELDS"); System.out.println(); for(Field f: fields) { String name = f.getName(); Class type = f.getType(); System.out.print("* " + Modifier.toString(f.getModifiers()) + " "); System.out.println(type.getName() + " " + name); } } public static void printMethods(Class c1) { Method[] methods = c1.getDeclaredMethods(); System.out.println("METHODS"); System.out.println(); for(Method m: methods) { String name = m.getName(); int modifier = m.getModifiers(); Class returnType = m.getReturnType(); Class[] paramType = m.getParameterTypes(); System.out.print("* " + Modifier.toString(modifier) + " " + returnType.getName() + " " + name + "("); for(int c = 0; c < paramType.length; c++) { if(c > 0) System.out.print(", "); System.out.print(paramType[c].getName()); } System.out.println(");"); } } public static void printConstructors(Class c1) { Constructor[] constructors = c1.getDeclaredConstructors(); System.out.println("CONSTRUCTORS"); System.out.println(); for(Constructor c: constructors) { String name = c.getName(); Class[] paramType = c.getParameterTypes(); System.out.print("* " + name + "("); for (int e = 0; e < paramType.length; e++) { if(e > 0) System.out.print(", "); System.out.print(paramType[e].getName()); } System.out.println(");"); } } } class Testing { int field1; int field2; String name; String adress; Testing(String name, String adress) { this.name = name; this.adress = adress; } public void aMethod(int lol1, int lol2) { } }