先考虑int Integer double Double。。。
它们之间涉及到:
1、类型转换(类的引用的赋值)。。。
2、自动装箱。。。
3、自动升级为复杂的数据类型。。(在需要double时候,如果带入int类型的数据,int会被自动转换为double类型的数据。)
规律:(之前已经发过博客,这里再次总结一下)
先自动拆箱子再类型升级。。。应该不能先自动升级再自动装箱,应为这种情况属于,应该带入类参数,
结果带入基本类型参数的情况。。。。。
。。它们之间有些是自动装箱的,但是类与类之间的转换要遵循子类的引用可以赋值给父类的引用。。。父类的应用不能赋值给子类的引用。。。
具有继承关系的类(非泛型类),子类引用可以赋值给父类引用。。。
对于泛型类,子类的引用不能直接赋值给父类的引用,要对子类进行强制类型转换后,才可以赋值非父类的引用。。。
强制转换的转换符,直接用类的名称就好,不能写泛型。。。。
如下图所示,iOb 和 dou 对象可以相互转换,因为他们都是同一个“类”。。。不要看泛型中的类。。。。。不要被泛型中的Integer 和 Double所迷惑,与泛型中的内容没有关系。他们是都是同一个类(同一个泛型类),Gen类。。。。。。下面的内容符合语法规范,所以编译器不会报错,具体的类的内容可能导致,运行时错误。。。但不一定每次都会产生错误,下面的泛型类中,没有具体内容,所以每次运行都不会产生错误。。。。。。对于这里产生的运行错误,应该是可以被捕获的吧????(有待解决)。。。