gpt4 book ai didi

java - 克隆一个 marc4j 记录类

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:50:09 25 4
gpt4 key购买 nike

我正在尝试从 Java marc4j 克隆 Recrod 类与

private Record copyRecord(Record record) {
Record f = new Record();
f.set(record.get());
return f;
}

但是我得到一个 java.lang.RuntimeException: with error: org.marc4j.marc.Record is abstract;不能实例化在线的f.set(record.get());

请记住,我的 java 技能有限,所以问题是

我怎样才能获得原始类的克隆,我可以在不弄乱原始类数据和方法的情况下操作和更改其值?

提前致谢问候,哈利

最佳答案

您不能实例化 Record,因为它是一个接口(interface)。

如果您想复制 Record,您可以像这样使用 MarcStreamWriterMarcStreamReader - 然而这似乎有点过头了:

public Record copyRecord(Record r)
{
ByteArrayOutputStream boas = new ByteArrayOutputStream();
MarcStreamWriter mw = new MarcStreamWriter(boas);
mw.write(r);

byte[] ba = boas.toByteArray();
ByteArrayInputStream bois = new ByteArrayInputStream(ba);
MarcStreamReader mr = new MarcStreamReader(bois);
Record r2 = null;
if(mr.hasNext())
r2 = mr.next();
return r2;
}

您可能需要在这里处理一些异常并关闭写入器/读取器。

关于java - 克隆一个 marc4j 记录类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44578750/

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