static修饰符是java里面非常常用的一个东西,用法也非常多。然而,在kotlin里竟然没有这个东西!那该如何替代呢?本文就总结了下java里面static的几种常见用法在kotlin里的替代方式。
static在java里面的用法总结
static在java里面的用法有很多,最常用的有下面几种:
- 静态变量及方法
- 静态初始化
- 静态内部类
下面我们就看看这几种场景在kotlin是如何实现的。
场景一:静态变量及方法
静态变量及方法可能是我们平时用到static最多的地方,我们先看看java里面是如何做的。
java静态变量及方法介绍:
首先,是静态变量和方法的定义:
public class StaticTest {
public static int STATIC_VAR = 0;
public static void staticMethod(String str){
System.out.println(str);
}
}
然后是静态变量和方法的使用:
StaticTest.STATIC_VAR = 10;
StaticTest.staticMethod("hello");
java的实现方式大家都非常熟悉了,下面着重说说kotlin是如何实现的。
kotlin替代静态变量及方法的方案
kotlin通过引入“伴生对象”的概念来替代java里的静态变量及方法。
“伴生对象”这个名词听上去很古怪,其实非常简单:在类的内容使用companion来标记一个对象。所有需要“静态化”的变量和方法都放在这个对象里。
下面是定义伴生对象的代码:
class StaticTest {
companion object{
//伴生对象是可以指定名字的,不过一般都省略掉。
var STATIC_VAR = 0
fun staticMethod(str: String?) {