今天有个同事让我一个接口供我调用,这个接口里的一个方法类似于:set(List<Object> param),也即参数类型是List<Object>
我有几个方法要调用这个接口,实参类型都类似于:List<String>、List<Long>。结果调用发现报错,参数类型不匹配。
纳闷了好久,一开始猜想的是Object类型虽然是String Long的父类,但是List<Object> param不是List<String>、List<Long>的父类,结果上网一查果然验证猜想是正确的。
其实这个方法改成泛型的比较好,让他改成泛型set(List<T> param) ,问题解决!