我刚刚开始使用Kotlin编程语言,它比Java更酷.我对静态方法和字段有一些疑问:
Q1:官方文件说
如果您将这些函数注释为@JvmStatic,Kotlin还可以为命名对象或伴随对象中定义的函数生成静态方法.
但是如果你看到下面我可以访问bar()方法作为静态方法,它可以在不使用@JvmStatic注释的情况下工作.但在官方文档上它的抛出错误 - > Kotlin静态方法.
Class C{
companion object{
@JvmStatic
fun foo() { }
fun bar();
}
}
fun main(args: Array<String>) {
C.foo();
C.bar(); //this line works fine
}
Run Code Online (Sandbox Code Playgroud)
Q2:我真的需要@JvmStatic并且@JvmField让事情变得静止吗?
正如您在companion对象中看到的那样,事情正在按预期工作.