欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

解析class的工具类,解析class工具类,import java.

来源: javaer 分享于  点击 11083 次 点评:194

解析class的工具类,解析class工具类,import java.


import java.lang.reflect.Field;import java.lang.reflect.Method;import java.lang.reflect.Modifier;import java.lang.reflect.Proxy;import java.util.ArrayList;import java.util.List;public class AnalyticClassInfo{    private static String getModifier(int modifier)    {        String result = "";        switch (modifier)        {        case Modifier.PRIVATE:            result = "private";            break;        case Modifier.PUBLIC:            result = "public";            break;        case Modifier.PROTECTED:            result = "protected";            break;        case Modifier.ABSTRACT:            result = "abstract";            break;        case Modifier.FINAL:            result = "final";            break;        case Modifier.NATIVE:            result = "native";            break;        case Modifier.STATIC:            result = "static";            break;        case Modifier.SYNCHRONIZED:            result = "synchronized";            break;        case Modifier.STRICT:            result = "strict";            break;        case Modifier.TRANSIENT:            result = "transient";            break;        case Modifier.VOLATILE:            result = "volatile";            break;        case Modifier.INTERFACE:            result = "interface";            break;        default:            break;        }        return result;    }    private static void printClassDefinition(Class clz)    {        String clzModifier = getModifier(clz.getModifiers());        if (clzModifier != null &amp;&amp; !clzModifier.equals(""))        {            clzModifier += "  ";        }        String superClz = "";        if(clz.getSuperclass()!=null)        {            superClz = clz.getSuperclass().getName();            if (superClz != null &amp;&amp; !superClz.equals(""))            {                superClz = " extends " + superClz;            }        }        Class[] interfaces = clz.getInterfaces();        String inters = "";        for (int i = 0; i < interfaces.length; i++)        {            if (i == 0)            {                inters += " implements ";            }            inters += interfaces[i].getName();        }        System.out.println(clzModifier + clz.getName() + " " + superClz + " "                + inters);        System.out.println("{");        System.out.println("fields:");        Field[] fields = clz.getDeclaredFields();        for (int i = 0; i < fields.length; i++)        {            String modifier = getModifier(fields[i].getModifiers());            if (modifier != null &amp;&amp; !modifier.equals(""))            {                modifier = modifier + " ";            }            String fieldName = fields[i].getName();            String fieldType = fields[i].getType().getName();            System.out.println("    " + modifier + fieldType + " " + fieldName                    + ";");        }        System.out.println("methods:");        Method[] methods = clz.getDeclaredMethods();        for (int i = 0; i < methods.length; i++)        {            Method method = methods[i];            String modifier = getModifier(method.getModifiers());            if (modifier != null &amp;&amp; !modifier.equals(""))            {                modifier = modifier + " ";            }            String methodName = method.getName();            Class returnClz = method.getReturnType();            String retrunType = returnClz.getName();            Class[] clzs = method.getParameterTypes();            String paraList = "(";            for (int j = 0; j < clzs.length; j++)            {                paraList += clzs[j].getName();                if (j != clzs.length - 1)                {                    paraList += ", ";                }            }            paraList += ")";            clzs = method.getExceptionTypes();            String exceptions = "";            for (int j = 0; j < clzs.length; j++)            {                if (j == 0)                {                    exceptions += "throws ";                }                exceptions += clzs[j].getName();                if (j != clzs.length - 1)                {                    exceptions += ", ";                }            }            exceptions += ";";            String methodPrototype = modifier + retrunType + " " + methodName                    + paraList + exceptions;            System.out.println("    " + methodPrototype);        }        System.out.println("}");    }    /**     * @param args     */    public static void main(String[] args)    {        // TODO Auto-generated method stub//      printClassDefinition(List.class);//      printClassDefinition(Proxy.class);        printClassDefinition(ArrayList.class);    }}
相关栏目:

用户点评