class Person {
private String name;
private int age;
}
public class ReflectionTest {
private String s;
private boolean b;
private int i;
private Person man;
private List list;
private int[] f = new int[5]; //Array 我希望能反射出 int[] 或是 int 可实际返回的是 [I 啥玩意??
//private Array array;
public static void printFields(Class c1) {
Element root = new Element(c1.getName());
Document doc = new Document(root);
String name ="";
try {
Field[] fields = c1.getDeclaredFields();
int length = fields.length;
for (int i = 0; i < length; i++) {
Field f = fields[i];
Class type = f.getType();
if(type != Array.class)
name = f.getName();
else
name =
Element element = new Element("pro");
element.setAttribute("name", name);
Element modifier = new Element("Modifier");
modifier.setText(Modifier.toString(f.getModifiers()));
element.addContent(modifier);
Element eType = new Element("Type");
eType.setText(type.getName());
element.addContent(eType);
root.addContent(element);
}
Format format = Format.getCompactFormat();
format.setEncoding("utf-8");
format.setIndent(" ");
XMLOutputter XMLOut = new XMLOutputter(format);
try {
XMLOut.output(doc, new FileOutputStream(c1.getName() + ".xml"));
}
catch (Exception e) {
}
}
catch (Exception e) {
}
}
public static void main(String[] args) {
ReflectionTest rt = new ReflectionTest();
String name = "";
name = rt.getClass().getName();
/* name = "java.lang.Double";
if (args.length > 0)
name = args[0];
else
System.out.println("AAAAA");
*/
try {
Class c1 = Class.forName(name);
printFields(c1);
}
catch (ClassNotFoundException e) {
}
}
}