gpt4 book ai didi

java - 注入(inject)构造函数和伴随对象

转载 作者:行者123 更新时间:2023-11-29 08:36:15 24 4
gpt4 key购买 nike

我是 Kotlin 的新手,我正在尝试注入(inject)一个值(在这个例子中它只是一个 Int 但在实际代码中它是一个 Provider 类)我在这里做错了什么?为什么 x 是未解析的引用?

class Test
@Inject constructor(private val x: Int) {

companion object {
var y: Int = 0

@BeforeClass @JvmStatic
fun beforeClass() {
y = x * 2
}
}
}

最佳答案

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

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 .您的属性(property)y实际上是Test.Companion中的一个字段类(class)。

我不确定你想用 BeforeClass 做什么事情,因为我不熟悉它。希望我的回答对您有所帮助。

关于java - 注入(inject)构造函数和伴随对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43945102/

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