Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 无法在子剪切中使用modifyBindings_Scala_Subcut - Fatal编程技术网

Scala 无法在子剪切中使用modifyBindings

Scala 无法在子剪切中使用modifyBindings,scala,subcut,Scala,Subcut,modifyBindings是否按照承诺工作?此测试应通过: import org.scalatest.FunSuite import org.scala_tools.subcut.inject.NewBindingModule import org.scala_tools.subcut.inject.BindingModule import org.scala_tools.subcut.inject.Injectable import org.junit.Test case class Re

modifyBindings是否按照承诺工作?此测试应通过:

import org.scalatest.FunSuite
import org.scala_tools.subcut.inject.NewBindingModule
import org.scala_tools.subcut.inject.BindingModule
import org.scala_tools.subcut.inject.Injectable
import org.junit.Test

case class Resource1(name: String)

class ResourceClient(implicit val bindingModule: BindingModule) extends Injectable {
    val res1 = inject[Resource1]
}

object Config1 extends NewBindingModule(module => {
    module.bind[Resource1] toSingle new Resource1("name1")
})

class TestModifyBindings extends FunSuite {

@Test
def test1() {
    implicit val bindingModule = Config1
    val rc = new ResourceClient
    assert(rc.res1.name == "name1")
    Config1.modifyBindings { module =>
        module.bind[Resource1] toSingle new Resource1("name2")
        val rc2 = new ResourceClient //not sure if rc can be used here
        assert(rc2.res1.name == "name2") //FAILS
    }
}

}
你知道我错过了什么吗?

如果你

    Config1.modifyBindings { module =>
进入

这能解决问题吗?

如果你

    Config1.modifyBindings { module =>
进入


这能解决问题吗?

+1抱歉,我已经很长时间没有使用Scala了,无法验证您的答案。+1抱歉,我已经很长时间没有使用Scala了,无法验证您的答案。