【发布时间】:2013-02-27 12:10:28
【问题描述】:
我有一个名为“Father”的简单 POJO 和另一个名为“Son”的 POJO,它扩展了“Father”,这是最简单的类继承示例。
现在我有一个List<Son>,我需要将它转换为List<Father>。
我该怎么办?
编辑
抱歉命名不好,我没有解释自己。 Person 和 Employee 会是一个更好的例子。或者产品和计算机。
【问题讨论】:
-
你为什么要投“下”?
Son是Father,所以它可以做任何Father可以做的事情... -
You can't => 您需要复制内容。
-
这里有一个逻辑缺陷。不是每个
Son都是Father。然而,在平行宇宙中它可能是真的。 -
Son是Father?一个儿子有一个父亲。现实世界的例子呼吁组合而不是继承! -
面向对象编程中的继承与生物学中的含义完全不同。在 OO 中,继承意味着专业化:子类是超类的专业化版本。为类使用诸如
Father和Son之类的名称会使它与继承的生物学意义相混淆。
标签: java list collections casting