/** * Reads the next {@link ArrayType} from source. * * @return The type * @throws IllegalStateException If the descriptor is invalid */ public ArrayType readArrayType() { int count = 0; while (this.hasNext() && this.peek() == '[') { this.advance(); count++; } return new ArrayType(count, this.readFieldType()); }
private static FieldType handleNonePrefix(final FieldType type) { if (type instanceof ArrayType) { final ArrayType arr = (ArrayType) type; return new ArrayType(arr.getDimCount(), handleNonePrefix(arr.getComponent())); } if (type instanceof ObjectType) { final ObjectType obj = (ObjectType) type; return new ObjectType(handleNonePrefix(obj.getClassName())); } return type; }
private static FieldType handleNonePrefix(final FieldType type) { if (type instanceof ArrayType) { final ArrayType arr = (ArrayType) type; return new ArrayType(arr.getDimCount(), handleNonePrefix(arr.getComponent())); } if (type instanceof ObjectType) { final ObjectType obj = (ObjectType) type; return new ObjectType(handleNonePrefix(obj.getClassName())); } return type; }