java - 当仅知道对象的抽象基类时如何复制对象

标签 java android

我有一个抽象基类MusicTime ,它有几个具体的子类 - Quaver , SemiQuaver , Crotchet子类实例包含在 List<? extends MusicTime> 中 Collection 。

我需要能够克隆这些对象,并且通过迭代集合并基于现有实例创建新实例来手动执行此操作。我显然无法实例化抽象类,那么有什么方法可以调用相同的构造函数MusicTime构造函数作为每个现有实例?所以如果它是 Quaver然后我创建一个新的 Quaver对象?

最佳答案

我看到了一个干净的和一个脏的解决方案:

  • 为层次结构中的每个类实现 clone() (来自 Cloneable 接口(interface))方法(干净的解决方案)
  • 使用instanceof运算符找出哪个类是对象实例(肮脏的解决方案)

  • 关于java - 当仅知道对象的抽象基类时如何复制对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21715505/

    相关文章:

    java - 列出用户输入

    java - 进一步优化我的充满 for 循环的 Java 代码

    java - 防止重定向到 Spring Security 的登录

    android - cordova-plugin-firebase 中的电话号码无效

    android - 如何使用水平滚动android显示图像

    Websphere 9 中 Java 耳文件的 Java.lang.LinkageError

    java - 使用复合EmbeddedId(包含另一个EmbeddedId的EmbeddedId)插入JPA实体的顺序

    android - 在android中获取两个 ImageView 的边距

    android - 动画切换按钮错误膨胀类 android.widget.ToggleButton

    java - 在 onDataChange 方法中从登录 Activity 移动到下一个 Activity 时应用程序崩溃