仿制药中的原始类型

时间:2018-02-17 08:30:40

标签: java

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?

此运行时异常的原因是什么?

请帮助我消化这个。

0 个答案:

没有答案