我需要在两个服务之间传递一个UniqueIdentifier
作为字符串。不幸的是,如果设置了UniqueIdentifier#toString
,则UniqueIdentifier.fromString
和externalId
不能很好地工作。
序列化和反序列化UniqueIdentifier
的规范方法是什么?
答案 0 :(得分:1)
请稍等,您是否必须为您的某些业务创建UniqueIdentifier?在这种情况下,您可以从头开始创建一个UniqueIdentifier并将其作为变量在服务之间传递(事务接受外部附件)。
如果您必须“提取”您所在州的uniqueIdentifier,我认为这是不可能的。
如果我错过了要点,我要提前致歉:D
答案 1 :(得分:1)
如果您正在使用Corda的库来创建带有自定义外部ID的UniqueIdentifier
集,则可以看到toString()
将生成${externalId}_$id
的模式,即{{1} }。
因此,要将其从该字符串转换回UniqueIdentifier,只需用dummyExternalId_10ed0cc3-7bdf-4000-b610-595e36667d7d
的定界符进行分割
_
链接here
如果外部ID下划线,则可能需要您自己的函数。
if (p.text.contains("_")) {
val ids = p.text.split("_")
//Create UUID object from string.
val uuid: UUID = UUID.fromString(ids[1])
//Create UniqueIdentifier object using externalId and UUID.
return UniqueIdentifier(ids[0], uuid)
}