private static String signatureToName(String signature) {
            int length = signature.length();
            switch (signature.charAt(0)) {
                case 'B':
                    return "byte";
                case 'C':
                    return "char";
                case 'D':
                    return "double";
                case 'F':
                    return "float";
                case 'I':
                    return "int";
                case 'J':
                    return "long";
                case 'L':
                    return signature.substring(1, length - 1).replace('/', '.');
                case 'S':
                    return "short";
                case 'V':
                    return "void";
                case 'Z':
                    return "boolean";
                case '[':
                    return signatureToName(signature.substring(1, length)) + "[]";
                default:
                    throw new DroidAssistBadTypeException("Bad type signature: " + signature);
            }
        }
This is a parser for custom aop pointcut expression.
<p>
Such as <pre>int android.util.Log.d(java.lang.String,java.lang.String)</pre>
plugin/src/main/groovy/com/didichuxing/tools/droidassist/spec/SourceSpec.java