23--泛型小结
在我的JAVA编码经历中泛型运用最多的类应首当属于ArrayList了。它的参数定义为ArrayList<E>的定义,在这个综括号里面的E其实就是你用真正的类型来代替。当然在我们泛型编程可以用任何JAVA认可的标识符来代替它。在运行方法中我们一方面可以通过使用在类声明的参数类型,一方面我们又可以使用未在类声明的参数类型。看上去是很自相矛盾,但这正是最为强大的地方。通过是在类声明的参数类型,非常好理解!eg:声明了 public class
在泛型编码中,在方法参数中用?的通配符来表示未知集合,表示该元素类型可以为任何元素类型的集合。但用?通配符时,可以操作元素方法!但添加元素的话,编译器会阻止任何可能破坏引用参数的行为。因为只有这样才能保障执行期间的安全性。通常我们在方法中看到<E extends..>或者<? Extends...>,是的,在泛型里就是用Extends这个关键词来表示Extend或implement。其实泛型编码最为重要的事情就是要认清楚两个事情:1)我什么时候可以使用泛型方法,2)我什么时候使用通配符?
首先, 当类型参数用于表述一个或多个的实参类型对方法或及其返回类型的依赖关系。我们就需要用泛型方法,如果没有那样的一个依赖关系的话,泛型方法就不应用使用。其次,如果我们类型实参是用于多态的,它的作用只是对不同的调用可以有一系列的实际的实参类型。就应该使用通配符,通配符就是为设计来支持灵活的子类型的而产生的。