新手求教泛型问题,为何泛型指定Object后依然无法接收其它指定泛型
Info<String> i1 = new Info<String>();
Info<Object> i2= new Info<Object>();
i2 = i1;
这样编译无法通过,但我的感觉,这样编译的话,i2泛型擦除换成Object类,i1泛型擦除换成String类,然后i2 = i1的话,应该可以一一对应,原本所有泛型变量发生了类似Object i2 = String i1 的向上转型,然而这样编译是无法通过的,这跟泛型背后的机制有关吗
还有虽然用通配符就可以接收, 但是还是有无法设置的问题,这又是为什么?
Info<?> i = new Info<String>();
i.set("abc"); // 编译错误,已经指定为String了却还是无法传入String参数
望大神指教,多谢!