# Class: com.pnfsoftware.jeb.core.units.code.android.JvmGenericsTypeSig

Java Generics signature parser for any `JavaTypeSignature`. 
 
- a `BaseType` \(primitive type\) 
- any of `ReferenceTypeSignature`:
 \- `ClassTypeSignature` \(object type\)
 \- `TypeVariableSignature` \(generic type\)
 \- `ArrayTypeSignature` \(array type\)
 

 Ref: https://docs.oracle.com/javase/specs/jvms/se8/html/jvms\-4.html\#jvms\-4.7.9.1

## Constructor: JvmGenericsTypeSig


## Field: arrayDim
Type: `int`
Description: Number of array dimensions for array type signatures.

## Field: baseType
Type: `char`
Description: for BaseType \(primitives\)

## Field: classes
Type: `java.util.List<com.pnfsoftware.jeb.util.base.Couple<java.lang.String,java.util.List<com.pnfsoftware.jeb.core.units.code.android.JvmGenericsTypeSig.TypeArg>>>`
Description: Class names and type arguments, from outer\-most to inner\-most class.

## Field: pkgElts
Type: `java.util.List<java.lang.String>`
Description: Package elements for class type signatures.

## Field: raw
Type: `java.lang.String`
Description: Raw signature substring represented by this object.

## Field: typeVar
Type: `java.lang.String`
Description: for TypeVariableSignature

## Method: toString
- return type: `java.lang.String`


## Static Method: parse
- parameter: `s`, type: `java.lang.String`
- return type: `com.pnfsoftware.jeb.core.units.code.android.JvmGenericsTypeSig`

Description: Parse a Java generics type signature.
parameter: s: signature string
return: parsed signature

## Static Method: parse
- parameter: `s`, type: `java.lang.String`
- parameter: `idx`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.android.JvmGenericsTypeSig`

Description: Example: `Lcom/foo/Bar<...>.Some<...>.Inside<...>;`
 Without generics: `Lcom/foo/Bar$Some$Inside;`
parameter: s: signature string
parameter: idx: parsing start index
return: parsed signature

