class Gen<T>
{
T val;
Gen(T ob)
{
val=ob;
}
T getOb()
{
System.out.println(val.getClass().getName());
return val;
}
}
现在假设我们在主要方法中执行以下操作:
Gen<Float> a=new Gen(2.5);
a.getOb()
我输出为
java.lang.Double中
线程中的异常&#34; main&#34; java.lang.ClassCastException:java.lang.Double无法强制转换为java.lang.Float
如果&#34; java.lang.Double&#34;打印它意味着T被替换为Double,但是我们说它应该被原始类型替换为Object?
此运行时异常的原因是什么?
请帮助我消化这个。