我有一个简单的代码,
case class Person(name: String, age:Int)
import scala.reflect.runtime.universe._
val t1 = typeOf[Person]
val t2 = t1.dealias
println(t1 == t2)
输出true,所以我想问一下Type.dealias是做什么用的?我应该什么时候使用它?一些代码示例会有帮助
我这么问是因为当我阅读 Spark 代码 ScalaReflection
时,它几乎总是在使用类型之前使用 dealias
最佳答案
类型别名看起来像
type Alias = Person
它声明了一个新类型Alias
,它与Person
相同。
dealias
解析这些别名,以便 typeOf[Alias].dealias
将返回 typeOf[Person]
。由于 Person
不是别名,因此 typeOf[Person].dealias
不执行任何操作。
另请注意:
关于scala - scala 反射 API Type.dealias 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51148684/