在下面的代码中,如果我将 Generic 实例化为:
Generic gen=new Generic(1,2);
Run Code Online (Sandbox Code Playgroud)
那是没有类型参数,然后当我这样做时:
int a=gen.get_a();
Run Code Online (Sandbox Code Playgroud)
它不起作用并给出
要求:int 发现:Java.Lang.Object
但ob.print()
有效。所以当我这样做时:
int a=(Integer)gen.get_a();
Run Code Online (Sandbox Code Playgroud)
那么它的工作原理。那么,当没有传递类型参数时,擦除是否会替换T
为Object
类型,因为T
不能是原始类型?
public class Generic<T>
{
T a;
Generic(T a)
{
this.a=a;
}
void print()
{
System.out.print(a);
}
T get_a()
{
return a;
}
}
Run Code Online (Sandbox Code Playgroud)