class Gen3<T extends Number>
{
T val;
Gen3(T ob)
{
val=ob;
}
T getOb()
{
return val;
}
}
案例1:
Gen<Integer> a=new Gen<Integer>(2);
String b=a.getOb();//compile error
正如我们在运行时所知,表达式如下:
Gen a=new Gen(2);
那么getOb()方法如何记住它必须返回Integer。该信息是否存储在类对象中?
答案 0 :(得分:0)
在运行时,a
并不知道它必须返回Integer
。它返回Integer
,因为val
中存储的对象是Integer
,该对象是getOb
返回的对象。
答案 1 :(得分:0)
参数化类型对象如何存储在内存中
与任何其他物体相同。
以及如何保留类型信息?
它没有保留在课堂上。您的类被编译为T
为Number
,但生成使用任何特定实例的目标代码以使用该实例的T
。< / p>