Tag: 继承可以为

可空类型的层次结构中的地方是什么?

你可以从类型B继承类型A ,但是每当你定义类型A你将得到类型A? (可空)免费。 但是它究竟在哪里呢? A? 从A还是其他方式继承? 我问这个是因为我对这样的代码感到困惑: open class Foo { fun foo() : Int { return 0; } } fun test<T : Foo?>(x:T) : Int { return x.foo() // (@) } fun main(args: Array<String>) { println(test<Foo?>(null)) } 我不明白为什么行(@)编译? 或换句话说,我不明白可空的类型层次,因为直到现在我虽然T为Foo? 或从它派生的任何类型。 你可以从可为空的类型中获得不可空的类型,那么它会是什么意思? 对不起,如果这是明显的,我只是在学习Kotlin。 (@)为可空类型,它应该是x!!.foo() 。