public static Type forSignature(String signature) {
            assert !(signature.startsWith("L") && signature.contains("<"));
            switch (signature.charAt(0)) {
                case 'B':
                    return Type.BYTE;
                case 'C':
                    return Type.CHAR;
                case 'D':
                    return Type.DOUBLE;
                case 'F':
                    return Type.FLOAT;
                case 'I':
                    return Type.INT;
                case 'J':
                    return Type.LONG;
                case 'L':
                    return createTypeFromSignature(signature);
                case 'S':
                    return Type.SHORT;
                case 'V':
                    return Type.VOID;
                case 'Z':
                    return Type.BOOLEAN;
                case '[':
                    return createTypeFromSignature(signature);
                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