【问题标题】:Java: Making a copy of an object when you only have access to an interfaceJava:当您只能访问接口时制作对象的副本
【发布时间】:2011-05-23 23:13:08
【问题描述】:

我正在使用一个 API,该 API 允许访问具有公共接口的特定子类集。我在整个代码中使用该接口,并且实例根据用户需求解析为适当的子类。我的问题是我需要创建这些对象之一的副本,但我无权访问 clone() 方法,并且 API 不提供复制构造函数。 即:

ObjectInterface myObject = objectFromParameter.clone(); //Not possible...

在 Java 中有解决方法吗?

【问题讨论】:

标签: java interface clone


【解决方案1】:

你也许可以通过反射做你想做的事。或者,如果对象支持序列化,您可以序列化为字节数组,然后从中重建一个新实例。

【讨论】:

  • 序列化和反序列化是个好主意。但是,如果其中一个实现类是枚举(不太可能),它将无法按预期工作。
  • 是的,我认为反射可能会起作用。不是很优雅,但总比没有好。我想我可能需要重新考虑我的整体架构。当我遇到语言限制的问题时,通常是因为有更好的方法来实现整体目标。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-31
  • 1970-01-01
  • 2012-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-25
相关资源
最近更新 更多