为什么kotlin不能扩展我的类型?

时间:2018-03-03 14:43:23

标签: java kotlin type-alias

我想编写如下代码:

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呢?

1 个答案:

答案 0 :(得分:2)

你不能编写这样的代码,因为Kotlin编译器的开发人员没有看到支持扩展为类型参数的类型别名的用例(Just基本上是这种类型别名的唯一可能的声明),因此没有设计和实施对它的支持。这确实与类型擦除无关。