Android Studio转换为Kotlin:在某些情况下使用@JvmStatic

我一直在Android上使用Kotlin相当集中。 这确实使编程乐趣了。 尽管如此,在某些情况下(主要是util类,名称应该是简短的),当自动将Java转换为Kotlin时,我希望在静态方法上使用@JvmStatic,而不是将调用者转换为MyClass.Companion.Bar

也就是说,在一些特定的情况下,拥有这个将会很好

 public static foo(Barian bar) 

转换成

 @JvmStatic fun foo(bar:Barian) 

所以我可以维护从Java的短的调用语法:

 MyClass.foo(bar) 

而不是

 MyClass.Companion.foo(bar) 

显然,在大多数情况下,我认为这是不好的方式,因为很多原因,比如未来的兼容性,非Kotlin的精神等等,但是在少数情况下,它可以使Java代码(使用我的类)更短。

当你像这样去除你的“静态”方法时,你不需要明确指定Companion-namespace:

 class MyClass { companion object { fun foo() {} } } 

在这种情况下,您仍然可以通过以下方式呼叫

 MyClass.foo() 

但是,静态方法不是一个科特林式的方法,应该避免使用这种语言的其他特性。