注入构造函数和伴随对象
我对Kotlin是新鲜的,我正在尝试注入一个值(在这个例子中,它只是一个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
不在伴随对象的变量范围内,就像无法从静态类Companion
访问bar
字段一样。 你的属性y
实际上是Test.Companion
类中的一个字段。
我不确定你想用BeforeClass
做什么,因为我不熟悉它。 无论如何希望我的回答有帮助。
- Spring Boot:添加@Transactional会产生java.lang.ClassNotFoundException:org.aspectj.util.PartialOrder $ PartialComparable
- 是否有可能在Android项目中运行最新版本的Akka Framework(2.5.2)?