注入构造函数和伴随对象

时间:2017-05-12 19:25:07

标签: java junit kotlin guice rx-kotlin

我是Kotlin的新手,我试图注入一个值(在这个例子中它只是一个Int,但在实际代码中它是一个Provider类) 我在这做错了什么?为什么x是一个未解决的参考?

String

1 个答案:

答案 0 :(得分:4)

伴侣对象是与关联的静态对象,而不是与类的实例关联。

class Foo(val bar: Baz) {
    companion object {}
}

类似于Java中的以下代码:

class Foo {
    static class Companion { }
    static final Foo.Companion Companion = new Foo.Companion();

    final Baz bar;
    Foo(Baz bar) { this.bar = bar; }
}

这就是x不在伴随对象的变量范围内的原因,就像您无法从静态类bar访问Companion字段一样。您的媒体资源y实际上是Test.Companion班级中的字段。

我不确定你要对BeforeClass做什么,因为我不熟悉它。希望我的回答无论如何都有帮助。