匿名對象
請注意新啼,匿名對象可以用作只在本地和私有作用域中聲明的類型追城。如果你使用匿名對象作為公有函數(shù)的 返回類型或者用作公有屬性的類型,那么該函數(shù)或?qū)傩缘膶嶋H類型 會是匿名對象聲明的超類型燥撞,如果你沒有聲明任何超類型座柱,就會是 Any。在匿名對象 中添加的成員將無法訪問物舒。
class C {
// 私有函數(shù)色洞,所以其返回類型是匿名對象類型
private fun foo() = object {
val x: String = "x"
}
// 公有函數(shù),所以其返回類型是 Any
fun publicFoo() = object {
val x: String = "x"
}
fun bar() {
val x1 = foo().x // 沒問題
val x2 = publicFoo().x // 錯誤:未能解析的引用“x”
}
}
在對象表達