我们经常看到形如Map<String,Object>
或List<User>
这样的用法。
那么,这样做,有什么用呢?
大家知道map、list叫做容器,容器可不可以给他贴上标签,规定这是用来装什么东西的呢?
因此,泛型就是标签,这样可以让我们,更重要的是让程序知道,这个容器是装什么的。在编译程序时,就可以直接检查是否违反了规定,而不是等到运行时才报错。
另外,就算没有报错,但是也存在隐患。当不声明反省时,容器默认是装Object,那么在具体装对象时,就肯定会有强制类型转换。强制类型转换是存在异常的。我们声明泛型之后,就规定了容器类型,避免了强制类型转换的发生。