test

来源:互联网 发布:成都 程序员版 编辑:程序博客网 时间:2024/05/22 16:44




多喝点含蓼问疾拉克




//: ShowMethodsClean.java// ShowMethods with the qualifiers stripped// to make the results easier to readpackage c11;import java.lang.reflect.*;import java.io.*;public class ShowMethodsClean {static final String usage = "usage: \n"+ "ShowMethodsClean qualified.class.name\n"+ "To show all methods in class or: \n"+ "ShowMethodsClean qualif.class.name word\n"+ "To search for methods involving 'word'";public static void main(String[] args) {if (args.length < 1) {System.out.println(usage);System.exit(0);}try {Class c = Class.forName(args[0]);Method[] m = c.getMethods();Constructor[] ctor = c.getConstructors();// Convert to an array of cleaned Strings:String[] n = new String[m.length + ctor.length];for (int i = 0; i < m.length; i++) {String s = m[i].toString();n[i] = StripQualifiers.strip(s);System.out.println(s + '\n' + n[i]);}for (int i = 0; i < ctor.length; i++) {String s = ctor[i].toString();n[i + m.length] = StripQualifiers.strip(s);}System.out.println("############################");if (args.length == 1)for (int i = 0; i < n.length; i++)System.out.println(n[i]);elsefor (int i = 0; i < n.length; i++)if (n[i].indexOf(args[1]) != -1)System.out.println(n[i]);} catch (ClassNotFoundException e) {System.out.println("No such class: " + e);}}}class StripQualifiers {private StreamTokenizer st;public StripQualifiers(String qualified) {st = new StreamTokenizer(new StringReader(qualified));st.ordinaryChar(' '); // Keep the spaces}public String getNext() {String s = null;try {if (st.nextToken() != StreamTokenizer.TT_EOF) {switch (st.ttype) {case StreamTokenizer.TT_EOL:s = null;break;case StreamTokenizer.TT_NUMBER:s = Double.toString(st.nval);break;case StreamTokenizer.TT_WORD:s = new String(st.sval);break;default: // single character in ttypes = String.valueOf((char) st.ttype);}}} catch (IOException e) {System.out.println(e);}return s;}public static String strip(String qualified) {StripQualifiers sq = new StripQualifiers(qualified);String s = "", si;while ((si = sq.getNext()) != null) {int lastDot = si.lastIndexOf('.');if (lastDot != -1)si = si.substring(lastDot + 1);s += si;}return s;}} // /:~