为了表示各种泛型 List 的父类,可以使用类型通配符:
- 类型通配符:>
- List>:表示元素类型未知的 List ,它的元素可以匹配任何的类型;
- 这种带通配符的 List 仅表示它是各种泛型 List 的父类,并不能添加元素;
如果说我们不希望 List> 是任何泛型的父类,只希望它代表某一泛型 List 的父类,可以使用类型通配符的上限:
- 类型通配符上限: extends 类型>
- List extends Number>:它表示的类型是 Number 或者其子类型;
除了可以指定类型通配符的上限,我们也可以指定类型通配符的下限:
- 类型通配符: super 类型>
- List super Number>:它表示的类型是 Number 或者其父类型;
可变参数又称参数个数可变,用作方法的形参出现,那么方法参数个数就是可变的了;
- 格式:修饰符 返回值类型 方法名(数据类型…变量名){ }
- 范例:public static int sum(int…a){ }
注意事项:
- 这里的变量其实是一个数组;
- 如果一个方法有多个参数,包含可变参数,可变参数要放在最后;
Arrays 工具类中有一个静态方法:
- public static List asList(T…a):返回由指定数组支持的固定大小的列表;
- 返回的集合不能做增删操做,可以做修改操作;
List 接口中有一个静态方法:
- public static List of(E…elements):返回包含任意数量元素的不可变列表;
- 返回的集合不能做增删改操作;
Set 接口中有一个静态方法:
- public static Set of(E…elements):返回一个包含任意数量元素的不可变集合;
- 再给元素的时候,不能给重复的元素;
- 返回的集合不能做增删改操作,没有修改的方法;