原来java还有个反编译工具,可以查看类所有public和private
直接上Dos测试过程:
C:\Users\jcq>javap java.util.Date
Compiled from "Date.java"
public class java.util.Date extends java.lang.Object implements java.io.Serializ
able,java.lang.Cloneable,java.lang.Comparable{
public java.util.Date();
public java.util.Date(long);
public java.util.Date(int, int, int);
public java.util.Date(int, int, int, int, int);
public java.util.Date(int, int, int, int, int, int);
public java.util.Date(java.lang.String);
public java.lang.Object clone();
public static long UTC(int, int, int, int, int, int);
public static long parse(java.lang.String);
public int getYear();
public void setYear(int);
public int getMonth();
public void setMonth(int);
public int getDate();
public void setDate(int);
public int getDay();
public int getHours();
public void setHours(int);
public int getMinutes();
public void setMinutes(int);
public int getSeconds();
public void setSeconds(int);
public long getTime();
public void setTime(long);
public boolean before(java.util.Date);
public boolean after(java.util.Date);
public boolean equals(java.lang.Object);
static final long getMillisOf(java.util.Date);
public int compareTo(java.util.Date);
public int hashCode();
public java.lang.String toString();
public java.lang.String toLocaleString();
public java.lang.String toGMTString();
public int getTimezoneOffset();
public int compareTo(java.lang.Object);
static {};
}
C:\Users\jcq>javap -private javax.swing.JButton
Compiled from "JButton.java"
public class javax.swing.JButton extends javax.swing.AbstractButton implements j
avax.accessibility.Accessible{
private static final java.lang.String uiClassID;
public javax.swing.JButton();
public javax.swing.JButton(javax.swing.Icon);
public javax.swing.JButton(java.lang.String);
public javax.swing.JButton(javax.swing.Action);
public javax.swing.JButton(java.lang.String, javax.swing.Icon);
public void updateUI();
public java.lang.String getUIClassID();
public boolean isDefaultButton();
public boolean isDefaultCapable();
public void setDefaultCapable(boolean);
public void removeNotify();
private void writeObject(java.io.ObjectOutputStream) throws java.io.IO
Exception;
protected java.lang.String paramString();
public javax.accessibility.AccessibleContext getAccessibleContext();
}
C:\Users\jcq>javap -private java.util.Date
Compiled from "Date.java"
public class java.util.Date extends java.lang.Object implements java.io.Serializ
able,java.lang.Cloneable,java.lang.Comparable{
private static final sun.util.calendar.BaseCalendar gcal;
private static sun.util.calendar.BaseCalendar jcal;
private transient long fastTime;
private transient sun.util.calendar.BaseCalendar$Date cdate;
private static int defaultCenturyStart;
private static final long serialVersionUID;
private static final java.lang.String[] wtb;
private static final int[] ttb;
public java.util.Date();
public java.util.Date(long);
public java.util.Date(int, int, int);
public java.util.Date(int, int, int, int, int);
public java.util.Date(int, int, int, int, int, int);
public java.util.Date(java.lang.String);
public java.lang.Object clone();
public static long UTC(int, int, int, int, int, int);
public static long parse(java.lang.String);
public int getYear();
public void setYear(int);
public int getMonth();
public void setMonth(int);
public int getDate();
public void setDate(int);
public int getDay();
public int getHours();
public void setHours(int);
public int getMinutes();
public void setMinutes(int);
public int getSeconds();
public void setSeconds(int);
public long getTime();
private final long getTimeImpl();
public void setTime(long);
public boolean before(java.util.Date);
public boolean after(java.util.Date);
public boolean equals(java.lang.Object);
static final long getMillisOf(java.util.Date);
public int compareTo(java.util.Date);
public int hashCode();
public java.lang.String toString();
private static final java.lang.StringBuilder convertToAbbr(java.lang.StringB
uilder, java.lang.String);
public java.lang.String toLocaleString();
public java.lang.String toGMTString();
public int getTimezoneOffset();
private final sun.util.calendar.BaseCalendar$Date getCalendarDate();
private final sun.util.calendar.BaseCalendar$Date normalize();
private final sun.util.calendar.BaseCalendar$Date normalize(sun.util.calenda
r.BaseCalendar$Date);
private static final sun.util.calendar.BaseCalendar getCalendarSystem(int);
private static final sun.util.calendar.BaseCalendar getCalendarSystem(long);
private static final sun.util.calendar.BaseCalendar getCalendarSystem(sun.ut
il.calendar.BaseCalendar$Date);
private static final synchronized sun.util.calendar.BaseCalendar getJulianCa
lendar();
private void writeObject(java.io.ObjectOutputStream) throws java.io.IO
Exception;
private void readObject(java.io.ObjectInputStream) throws java.io.IOEx
ception, java.lang.ClassNotFoundException;
public int compareTo(java.lang.Object);
static {};
}
C:\Users\jcq>javap --help
invalid flag: --help
Usage: javap <options> <classes>...
where options include:
-c Disassemble the code
-classpath <pathlist> Specify where to find user class files
-extdirs <dirs> Override location of installed extensions
-help Print this usage message
-J<flag> Pass <flag> directly to the runtime system
-l Print line number and local variable tables
-public Show only public classes and members
-protected Show protected/public classes and members
-package Show package/protected/public classes
and members (default)
-private Show all classes and members
-s Print internal type signatures
-bootclasspath <pathlist> Override location of class files loaded
by the bootstrap class loader
-verbose Print stack size, number of locals and args for met
hods
If verifying, print reasons for failure
以上原创,更多请参考:
http://www.cnblogs.com/yanpeng/archive/2009/06/09/1943348.html
http://tech.163.com/05/1213/10/24RK100B0009159T.html