站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Java 专题获取类的方法列表

获取类的方法列表

摘要: 获取类的方法列表

</td> </tr> <tr> <td height="35" valign="top" class="ArticleTeitle">
java命令行工具中有一个javap,可以帮我们输出一个类的方法列表,有时候很有用啊!尤其是象我这样 对java API记忆模糊的人,如图是查Date类的输出

C:\java>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 {
<table width="661" height="23" border="0"> <tr> <td width="294"> 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); </td> <td width="357"> </td> </tr> </table>

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);
public int compareTo(java.util.Date);
public int compareTo(java.lang.Object);
public int hashCode();
public java.lang.String toString();
public java.lang.String toLocaleString();
public java.lang.String toGMTString();
public int getTimezoneOffset();
static {};
}
下面的程序有相似的功能,它利用了java反射API
import java.io.*;
import java.util.*;
import java.lang.reflect.*;

public class MyJavaP {
public static void main(String[] argv) {
MyJavaP pp = new MyJavaP();
if (argv.length == 0) {
System.err.println("Usage: javap className [...]");
System.exit(1);
} else for (int i=0; i pp.doClass(argv[i]);//分别处理从命令行输入的每一个类名
}

protected void doClass(String className) {
try {
Class c = Class.forName(className);//动态载入类
//输出类的修饰符
System.out.println(Modifier.toString(c.getModifiers()) + ' ' + c + " {");
int i, mods;
Field fields[] = c.getDeclaredFields();//获得类声明的所有字段
for (i = 0; i < fields.length; i++) {
if(!Modifier.isPrivate(fields[i].getModifiers())&& ! Modifier.isProtectedfieldsi].getModifiers()))
System.out.println("\t" + fields[i]);//输出公共的字段
}
Method methods[] = c.getDeclaredMethods();
for (i = 0; i < methods.length; i++) {
if (!Modifier.isPrivate(methods[i].getModifiers())&&!Modifier.isProtected (methodsi].getModifiers()))
System.out.println("\t" + methods[i]);//输出公共的方法
}
} catch (ClassNotFoundException e) {
System.err.println("Error: Class " +className + " not found!");
} catch (Exception e) {
System.err.println(e);
} finally {
System.out.println("}");
}
}
}</td> </tr> <tr>


↑返回目录
前一篇: 自定义类加载器加载加密的类文件
后一篇: 从网络下载类文件并执行