import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
public class ReflectTest {
public static void main(String[] args) throws Exception {
Class personClass = Class.forName("java.lang.String");
StringBuilder s = new StringBuilder();
s.append(Modifier.toString(personClass.getModifiers()) + " class " + personClass.getSimpleName() + "{\n");
Field[] declaredFields = personClass.getDeclaredFields();
for (Field field : declaredFields) {
s.append("\t");
s.append(Modifier.toString(field.getModifiers()));
if (!"".equals(Modifier.toString(field.getModifiers()))) {
s.append(" ");
}
s.append(field.getType().getSimpleName() + " " + field.getName() + ";\n");
}
Constructor[] declaredConstructors = personClass.getDeclaredConstructors();
for (Constructor declaredConstructor : declaredConstructors) {
s.append("\t" + Modifier.toString(declaredConstructor.getModifiers()));
if (!"".equals(Modifier.toString(declaredConstructor.getModifiers()))) {
s.append(" ");
}
s.append(personClass.getSimpleName() + "(");
Class[] parameterTypes = declaredConstructor.getParameterTypes();
for (Class parameterType : parameterTypes) {
s.append(parameterType.getSimpleName() + ",");
}
if (parameterTypes.length > 0) {
s.deleteCharAt(s.length() - 1);
}
s.append("){}\n");
}
Method[] declaredMethods = personClass.getDeclaredMethods();
for (Method declaredMethod : declaredMethods) {
s.append("\t" + Modifier.toString(declaredMethod.getModifiers()));
if (!"".equals(Modifier.toString(declaredMethod.getModifiers()))) {
s.append(" ");
}
s.append(declaredMethod.getReturnType().getSimpleName() + " ");
s.append(declaredMethod.getName() + "(");
Class[] parameterTypes = declaredMethod.getParameterTypes();
for (Class parameterType : parameterTypes) {
s.append(parameterType.getSimpleName() + ",");
}
if (parameterTypes.length > 0) {
s.deleteCharAt(s.length() - 1);
}
s.append("){}\n");
}
s.append("}");
System.out.println(s);
}
}