【发布时间】:2013-06-24 19:39:22
【问题描述】:
我有一个父类和一些子类(我们称它们为 parent 和 child1、child2、child3 等)。
我有一个函数,它采用二维数组 parents 并将其展平为一维数组,如下所示:
public parent[] flatten(parent[][] input);
在调用上下文中,我知道当我传递一个数组时,所有元素都具有相同的类型,并且该类型是子类型之一(特别是,我知道它是哪个子类型)。我希望能够获取数组的特定元素,并将其分配给正确子类型的变量,如下所示:
child1 c = flatten(input)[0];
我知道类型断言(相关的 SO 帖子:Assert an object is a specific type),但如果断言成功,我似乎无法找到一种方法来实际分配给正确类型的变量。在Java中甚至可能发生这样的事情吗?我知道这在其他语言中是可能的,例如在 Go 中。
【问题讨论】:
标签: java subclass superclass type-assertion