当前位置:  开发笔记 > 编程语言 > 正文

将参数传递给Scala对象

如何解决《将参数传递给Scala对象》经验,为你挑选了1个好方法。

是否有可能从外部对象初始化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中的val初始化?



1> dk14..:

简单方案:

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

如果在"传递"名称和密码后使用mongoDBConnectionURI - 一切都应该正常工作.但我建议使用class而不是object并将其传递给DAO classess(也没有循环引用):

==moduleA==

class UserDAO(objectA: ObjectA) 

==moduleB==

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

}

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有