gpt4 book ai didi

scala - 将参数传递给 Scala 对象

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

是否有可能从外部对象初始化 Scala 对象?我尝试初始化的 Scala 对象没有任何 Companion 类。这是一个例子:

object ObjectA {
val mongoDBConnectionURI = // This is the Val that I want to initialize from an external object
....
....
}

但是 MongoDBConnectionURI 类型的 mongoDBConnectionURI 需要一个主机和一个端口,我必须从配置文件中读取该配置文件,该文件实际上由对象 B 完成,并且这些值被传递给 ObjA。稍后我所有的 DAO 对象将访问对象 A 中的 mongoDBConnectionURI 变量以获取连接字符串。如何将值从对象 B 传递到对象 A 并初始化对象 A 中的值?

最佳答案

简单的解决方案:

object ObjectA {
lazy val mongoDBConnectionURI = getConnection(name.get, passwd.get)
var name: Option[String] = None
var passwd: Option[String] = None
}

如果您在“传递”名称和密码后使用 mongoDBConnectionURI - 一切都应该正常工作。但我建议使用类而不是对象并将其传递给 DAO 类(也没有循环引用):
==moduleA==

class UserDAO(objectA: ObjectA)

==moduleB==

object ObjectB {
val user = ...
val passwd = ...
val a = new ObjectA(name, passwd)
object UserDAOInstance extends UserDAO(a)

}

关于scala - 将参数传递给 Scala 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22457278/

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