我试图理解使用/不使用@JvmStatic与何时使用其中任何一个之间的区别.
所以,使用Kotlin和Java,我可以这样做:
TestKotlin.kt
class TestKotlin {
companion object {
val someString = "hello world"
}
}
Run Code Online (Sandbox Code Playgroud)
然后由Java调用,如下所示:
TestJava.java
public class TestJava {
String kotlinStaticString = TestKotlin.Companion.getSomeString();
}
Run Code Online (Sandbox Code Playgroud)
但是,有这个选项2:
TestKotlin.kt V2
class TestKotlin {
companion object {
@JvmStatic // <-- notice the @JvmStatic annotation
val someString = "hello world"
}
}
Run Code Online (Sandbox Code Playgroud)
然后,从Java调用它,如下所示:
TestJava.java V2
public class TestJava {
String kotlinStaticString = TestKotlin.getSomeString();
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:
谢谢!