title: What is the difference between the class `Class` and the class `Type` in java?
body: <p>I've read <a href="https://stackoverflow.com/questions/16600750/difference-between-class-and-type">this SO question</a> that talks about the difference between classes and types in java</p>
  
  <p>However, this talks about classes declared with the <code>class</code> keyword rather than the actual class <code>Class</code> in java. In Java, I can have a <code>Class&lt;T&gt;</code> where T is a class/interface/array type (and for primitives, <code>T</code> would be the autoboxed class, but the instance of <code>Class&lt;T&gt;</code> would be associated with the primitive type, such as int.class). Point is, <code>Class</code> is used with more than just class types.</p>
  
  <p><strong>What is the difference between the class<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" rel="nofollow noreferrer"><code>Class</code></a> and interface <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html" rel="nofollow noreferrer"><code>Type</code></a>?</strong> When would I ever use <code>Type</code> in a java program?</p>