private static String usage =
"usage:\n" + "showMethods qualified.class.name\n" +
"To show all methods in class or:\n" + "showmethods qualified.class.name word\n" +
"to search for mathods imvolving word";
private static Pattern p = Pattern.compile("\\w+\\.");
public static void main(String[] args) throws ClassNotFoundException {
if(args.length < 1) {
System.out.println(usage);
System.exit(0);
}
int lines = 0;
try {
Class<?> c = Class.forName(args[0]);
Method[] methods = c.getMethods();
Constructor[] ctors = c.getConstructors();
if(args.length == 1) {
System.out.println(p.matcher(methods.toString()).replaceAll(""));
for(Constructor ctor : ctors)
System.out.println(p.matcher(ctor.toString()).replaceAll(""));
lines = methods.length + ctors.length;
} else {
for(Method method : methods)
if(method.toString().indexOf(args[1]) != -1) {
System.out.println(p.matcher(method.toString()).replaceAll(""));
lines++;
}
for(Constructor ctor : ctors)
if(ctor.toString().indexOf(args[1]) != -1) {
System.out.println(p.matcher(ctor.toString()).replaceAll(""));
lines++;
}
}
} catch (ClassNotFoundException e) {
System.out.println("no such class:" + e);
}
}
}
输出
usage:
showMethods qualified.class.name
To show all methods in class or:
showmethods qualified.class.name word
to search for mathods imvolving word
代码都是书本上的,但是输出却不一样 怎么解决?
作者: 阿冉 时间: 2013-4-23 03:07
书中很多例子,我弄了之后 输出的结果和书本结果都不一样
怎么破?比方说“类方法提取器”这个例子吧。
我输出结果是
usage: /nShowMethods qualified.class.name/nTo show all methods in class or: /nShowMethods qualified.class.name word/nTo search for methods involving 'word'
书本上的结果是public boolean java.lang.String.equals(java.lang.Object)
public java.lang.String java.lang.String.toString()
public int java.lang.String.hashCode()
public int java.lang.String.compareTo(java.lang.String)
public int java.lang.String.compareTo(java.lang.Object)
public int java.lang.String.indexOf(int)
public int java.lang.String.indexOf(int,int)
public int java.lang.String.indexOf(java.lang.String
for (int k = 0; k < theMethods[i].getParameterTypes().length; k ++) {
System.out.print(" " + theMethods[i].getParameterTypes());
}
System.out.println();
}