rendered paste body/*
*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) {
}
}