Why can't i have classcastexception?
<p>Why can't i have classcastexception? 
E means C in the example, doesn't it?
B is not C, I thought my cast must work only for compiler.
Where is my mistake?</p>

<pre><code>public class A{
public static void main(String...s){
    Monitor&lt;C&gt; m = new Monitor&lt;C&gt;(); 
    C arg2 = new C();
    B d = m.f(arg2);
    System.out.println(d);
    }
}
class B extends A{}
class C extends B{}
class Monitor&lt;E extends B&gt;{
public E f(E E){
    return (E) new B();//Why this place didn't give me ClassCastException?
}
}
</code></pre>
