@Override public Type toType(String type) { return toType(type, ClassResolver.CLASS_FOR_NAME_RESOLVER); }
@Override public Type toType(String type, ClassResolver resolver) { try { CharSequenceScanner parser = new CharSequenceScanner(type); Type result = toType(parser, resolver, null); parser.skipWhile(' '); if (parser.hasNext()) { throw new IllegalArgumentException(parser.read(Integer.MAX_VALUE)); } return result; } catch (RuntimeException e) { throw new IllegalArgumentException(type, e); } }
throw new IllegalWildcardSequenceException(sequence); Type bound = toType(parser, resolver, null); if (lowerBound) { result = new UpperBoundWildcardType(bound); List<Type> typeArgList = new ArrayList<>(); while (true) { Type arg = toType(parser, resolver, null); typeArgList.add(arg); char d = parser.forceNext(); } else if (d == '.') { parser.next(); result = toType(parser, resolver, result);