过去几天我问了几个关于 Scala 反射的问题,因为它对我来说仍然很新。
新问题实际上是两个相关的问题:
- 您将如何创建一个根据输入类型返回不同结果的函数?
- 你能对反射 API 返回的
TypeSymbol
和对象做同样的事情吗?Type
示例(不编译,但这大致是我希望它工作的方式):
def result[T <: String] = "STRING"
def result[T <: Int] = "INT"
result[String] // Returns "STRING"
result[Int] // Returns "INT"
val type_symbol: Type = ... // Get a Type object from a reflection
type_symbol match {
case Int => "INT"
case String => "STRING"
case _ => "OTHER"
}