gpt4 book ai didi

java - 多个实例而不是接口(interface)副本

转载 作者:行者123 更新时间:2023-12-02 01:49:55 24 4
gpt4 key购买 nike

所以这可能有点难以解释......

目前我这样做:

SomeInterface xyz1 = SomeInterface.method(data);
SomeInterfaceCopy xyz2 = SomeInterfaceCopy.method(data);

我在这里所做的是制作一个精确的副本'SomeInterface' 的每个类和接口(interface),因为我需要两个相同的“实例”界面。

我想做的是这样的:

SomeInterface xyz1 = SomeInterface.method(data);
SomeInterface xyz2 = SomeInterface.method(data);

这将允许我拥有两个以上的“实例”,不可能使用 atm,因为 xyz1 和 xyz2 基本上是副本(同一实例中的所有对象)彼此而不是实例。

我将如何实现这一目标?

谢谢:)

编辑:谢谢@PeterLawrey,不幸的是它不能解决我的具体问题,但这是正确的答案

最佳答案

假设您有两个相同的接口(interface),但由于某种原因,您不能轻易删除重复的接口(interface)而不使用它。

SomeInterface xyz1 = SomeInterface.method(data);
SomeInterfaceCopy xyz2 = SomeInterfaceCopy.method(data);

最简单的更改是使副本继承原始版本。

interface SomeInterfaceCopy extends SomeInterface {

这意味着您可以编写其中之一

SomeInterfaceCopy xyz2 = SomeInterfaceCopy.method(data);

SomeInterface xyz2 = SomeInterfaceCopy.method(data);

如果您根本无法更改代码,而是想要逐个字段进行深层复制,则可以查看原始对象的序列化并将其反序列化为目标类型。

could you give an example of calling new twice please?

假设class SomeInterfaceImpl实现了SomeInterface,您可以使用它创建两个实例

SomeInterface xyz1 = new SomeInterfaceImpl(); // one instance
SomeInterface xyz2 = new SomeInterfaceImpl(); // 2nd instance.

关于java - 多个实例而不是接口(interface)副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53117710/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com