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