Java 泛型与多线程编程入门
1. 泛型通配符类型参数
在 Java 编程中,当我们定义方法时,可能会遇到参数类型的限制问题。例如,有一个方法声明如下:
public void addItems(ArrayList<Object> list) {
// 方法体未显示
}
当我们尝试调用 addItems(new ArrayList<String>()); 时,会发现这段代码无法编译。虽然 String 是 Object 的子类,但在泛型的形式类型参数中,继承规则并非如此简单。这时,我们需要使用泛型的另一个特性——通配符。
如果想创建一个接受任何类型 ArrayList 的方法,可以这样编写:
public void addItems(ArrayList<?> list)
这里的问号表示可以是任何类型。但如果想将参数限制为特定超类的集合,例如在一个工资系统中,有一个 Employee 超类,以及 HourlyEmployee 和 SalariedEmployee 两个子类,希望方法接受 Employee 、 HourlyEmployee 或 Sala
超级会员免费看
订阅专栏 解锁全文
16万+

被折叠的 条评论
为什么被折叠?



