1.需求描述:在编写方法时,可能参数的类型是不确定的。
2.解决方式:使用 ? Object 和 泛型(T,K,V,E)
3.三者的区别
3.1Object的特点
①Object就是一个类,是任意类的父类
②实现可传入任意类型的原理是:Java自动向上造型
③局限性:当参数是个集合时,并要求集合的元素类型为任意时,如下:
//错误演示
public void test(ArrayList<Object> collection)
//然后我们想传入一个 List<String>
public static void main(String[] args){
test(new ArrayList<String>);
}
仔细想想, ArrayList<String>
和 ArrayList<Object>
他们是两个不同的东西,并没有包含关系。
3.2 ?和 泛型的特点
①它们是可以通用的
②使用泛型时,在方法中可以使用这个类型,但是?就无法使用
③当方法中需要 使用 类型不确定的类型时 ,使用泛型。