标题 泛型中通配符的理解篇— 限定,超限定! 手机无法上代码跟图象:原有代码来自于Java核心技术P335-336页! 第一个方法讲的是通配符的限定 可以使用getFirst() ,getSecond() 两个方法。但是无法调用set的两个改变方法! 原因:(自我理解,有错勿笑) 1,传入的值为Pair的类,而这一类中传入的泛型为Employee 的子类,或者本类!那么作为子类,理所应当会产生扩展。那么就有可能涉及到重载,通过桥方法进行的重写!那么编译器中就会产生两个set方法,那么导致我们传入的对象对于JAVA编译器来说不明确,因为可能存在多个,并且扩展的原因,无法分清多个set的类型,导致出现越界的情况! 所以只能进行get型方式的获取! 而第二个方法,这是相反。设定了继承类为Manager,给定了继承扩展的最底限定。那么就不会有多出的set中的越界出现! 但是由于限定了传入只是Manager类及其父类,那么父类是被扩展类,可能并没有扩展get的类型的结果,所以为了防止出错。JAVA编译器则限定只能set,而不能get! 无限定通配符:是一个脆弱的一种方式。但是可以通过通配符的捕获来解决相对应的问题!