import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
public class Reflect {
public static void main(String[] args) throws Exception{
//创建这个是为了拼接字符串
StringBuilder s = new StringBuilder();
//修改这里可以反编译出任何类的属性。
Class studentClass = Class.forName("java.util.Date");
//获取关键字和类名
s.append(Modifier.toString(studentClass.getModifiers())+" class "+studentClass.getSimpleName()+" { ");
s.append("\n");
Field[] fields = studentClass.getDeclaredFields();
for (Field fs : fields){
s.append("\t");
//获取属性关键字
s.append(Modifier.toString(fs.getModifiers()));
s.append(" ");
//获取属性类型名
s.append(fs.getType().getSimpleName());
s.append(" ");
//获取属性名称。
s.append(fs.getName());
s.append(";\n");
}
s.append("}");
System.out.println(s);
}
}
编译结果为:
public class Date {
private static final BaseCalendar gcal;
private static BaseCalendar jcal;
private transient long fastTime;
private transient Date cdate;
private static int defaultCenturyStart;
private static final long serialVersionUID;
private static final String[] wtb;
private static final int[] ttb;
}