我想编写如下代码:
typealias Just<T> = T // Error here
val hello: Just<String> = "hello"
我有一个错误说Kotlin: Type alias expands to T, which is not a class, an interface, or an object
。
我认为 typealias 是一个编译器时功能,应该与类型擦除无关。那为什么我不能这样写typealias
呢?
你不能写这样的代码,因为 Kotlin 编译器的开发人员没有看到支持扩展为类型参数的类型别名的用例(Just
基本上是这种类型别名的唯一可能声明),因此没有设计和实现对它的支持。这确实与类型擦除无关。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句