gpt4 book ai didi

scala - 如何在 Scala 中为类实例生成唯一 ID?

转载 作者:行者123 更新时间:2023-12-04 05:06:57 24 4
gpt4 key购买 nike

我有一个类需要写入文件以与某些遗留 C++ 应用程序交互。
由于它会以并发方式多次实例化,
给文件一个唯一的名称是个好主意。

我可以使用 System.currentTimemili 或 hashcode,但存在冲突的可能性。
另一种解决方案是放一个 var伴随对象内的字段。

例如,下面的代码显示了一个这样的类和最后一个解决方案,但我不确定这是最好的方法(至少它看起来是线程安全的):

case class Test(id:Int, data: Seq[Double]) {
//several methods writing files...
}

object Test {
var counter = 0

def new_Test(data: Seq[Double]) = {
counter += 1
new Test(counter, data)
}
}

最佳答案

it is a good idea to give the file an unique name



由于您想要的只是一个文件,而不是 id,因此最好的解决方案是创建一个具有唯一名称的文件,而不是具有唯一 id 的类。

您可以使用 File.createTempFile :
val uniqFile = File.createTempFile("myFile", ".txt", "/home/user/my_dir")

Vladimir Matveev mentioned在 Java 7 及更高版本中有更好的解决方案 - Paths.createTempFile :
val uniqPath = Paths.createTempFile(Paths.get("/home/user/my_dir"), "myFile", ".txt"),

关于scala - 如何在 Scala 中为类实例生成唯一 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21579725/

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