ここ数日、Scala でのリフレクションについていくつか質問しました。
新しいものは、実際には関連する 2 つの質問です。
- 入力タイプに基づいて異なる結果を返す関数をどのように作成しますか?
- リフレクション 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"
}