title: ParameterizedType.getRawType() returns j.l.r.Type, not Class<?>?
body: <pre><code>ParameterizedType parameterized =
      (ParameterizedType) List.class.getMethod("iterator").getGenericReturnType();
  Type raw = parameterized.getRawType();
  </code></pre>
  
  <p><code>ParameterizedType#getRawType()</code> returns a <code>Type</code>, not a <code>Class&lt;?&gt;</code> (although I get that <code>java.lang.Class</code> now implements <code>Type</code>). Is there a good reason why <code>getRawType()</code> doesn't declare its return type to be <code>Class&lt;?&gt;</code>? Are there extreme cases where <code>getRawType()</code>'s result might not be a <code>Class&lt;?&gt;</code>?</p>
  
  <p>It's enough of a thrashing to work with <code>j.l.r.Type</code> as it is; this seems like an instance in which they could have saved us one downcast.</p>