我有一个抽象基类MusicTime
,它有几个具体的子类 - Quaver
, SemiQuaver
, Crotchet
子类实例包含在 List<? extends MusicTime>
中 Collection 。
我需要能够克隆这些对象,并且通过迭代集合并基于现有实例创建新实例来手动执行此操作。我显然无法实例化抽象类,那么有什么方法可以调用相同的构造函数MusicTime
构造函数作为每个现有实例?所以如果它是 Quaver
然后我创建一个新的 Quaver
对象?
最佳答案
我看到了一个干净的和一个脏的解决方案:
clone()
(来自 Cloneable 接口(interface))方法(干净的解决方案)
instanceof
运算符找出哪个类是对象实例(肮脏的解决方案)
关于java - 当仅知道对象的抽象基类时如何复制对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21715505/