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()
但是,静态方法不是一个科特林式的方法,应该避免使用这种语言的其他特性。