一、通配符概念
其实.上很多技术点都是为了解决某一问题而出现的,那么我们在学习的过程中可以先提出问题,然后在使用我们的技术去解决。
DEMO:观察问题
以上代码可以正常执行,但是如果泛型类中的类型改变之后发现了方法中的参数的泛型也需要改变,这就说明了fun方法依赖Person的泛型,这也是耦合度较高的一种体现,此时我们可以在方法的参数中使用通配符代替具体的泛型。通配符使用“?”即可。
DEMO:通配符解决问题
此时使用了“?”在方法中替代具体的泛型类型,之后不管Person中的泛型如何改变,fun 方法都不需要改动,其实通配符还有两个子通配符。一个是通配符上限,一个是通配符下限。
二、通配符的上限
1、通配符上限: ? extends. 上限 类型。