You can pass List<String> to a method that accepts List<Object> parameters.

Can I pass List to a method that accepts List parameters?

A. Correct
B. Wrong

Analysis, wrong X

      原始类型可以引用一个参数化类型的对象,编译报告警告,例如,
      Collection c = new Vector<String>();//原来的方法接受一个集合参数,新的类型也要能传进去

      参数化类型不考虑类型参数的继承关系:

      Vector<String> v = new Vector<Object>(); //错误!///不写<Object>没错,写了就是明知故犯

      Vector<Object> v = new Vector<String>(); //也错误!

      编译器不允许创建泛型变量的数组。即在创建数组实例时,数组的元素不能使用参数化的类型,例如,下面语句有错误:

        Vector<Integer> vectorList[] = new Vector<Integer>[10];

      泛型中的类型参数严格说明集合中装载的数据类型是什么和可以加入什么类型的数据,注意:Collection<String>和Collection<Object>是两个没有转换关系的参数化的类型。

      假设Vector<String> v = new Vector<Object>();可以的话,那么以后从v中取出的对象当作String用,而v实际指向的对象中可以加入任意的类型对象;假设Vector<Object> v = new Vector<String>();可以的话,那么以后可以向v中加入任意的类型对象,而v实际指向的集合中只能装String类型的对象。肯定会报错了

Guess you like

Origin blog.csdn.net/weixin_44436675/article/details/112976249