一个方法是不是泛型的,与它所在的类是不是泛型没有什么关系
与泛型类不同,调用方法时一般并不需要特意指定类型参数的实际类型
限定类型后,如果类型使用错误,编译器会提示。指定边界后,类型擦除时就不会转换为Object了,而是会转换为它的边界类型
虽然Integer是Number的子类,但DynamicArray<Integer>并不是DynamicArray<Number>的子类
如果类型参数之间有依赖关系,或者返回值依赖类型参数,或者需要写操作,则只能用类型参数
参数限定只有extends形式,没有super形式
Java中还支持多个上界,多个上界之间以&分隔
Base为上界类,Comparable和Serializable为上界接口。如果有上界类,类应该放在第一个,类型擦除时,会用第一个上界替换