两种用法
Kotlin 的 object 关键字有两种用法,一个是作为右值表达式的前缀,一个是作为类的前缀修饰符。
object 表达式
object 表达式一般用于对现有类进行稍微修改、因为是临时使用一次而不值得新建类完成的场景,我们称其为匿名对象。
Any 类型的匿名对象
先来直观感受下用法:
val o = object {
val hello = "Hello"
val world = "World"
override fun toString(): String {
return "$hello, $world"
}
}
val r = object : Runnable {
override fun run() {
TODO("Not yet implemented")
}
}
r.run()
这时 Java 同学举手示意要发言:这个我也行呀,你看:
Object o = new Object() {
String hello = "Hello";
String world = "World";
@Override
public String toString() {
return hello + ", " + world;
}
};
// 还有这种匿名对象:
Runnable r = new Runnable() {
@Override
public void run() {
}
};
r.run();
看起来确实挺像的,但是,在 Kotlin 中我们可以随意加其他方法