如果inner
名为Type
,我想创建一个代表Option
的新inner
,其中包含与def createOptionType(inner: Type): Type = {
typeOf[Option[inner]] // this line is pseudocode
}
类型相同的类型
例如,执行此操作的方法的签名可能类似于:
{{1}}
This answer部分帮助,但使用泛型方法,而在这种情况下,我传入了一个具体类型,使泛型不可用。
答案 0 :(得分:5)
您可以使用scala.reflect.runtime.universe.appliedType
:
import scala.reflect.runtime.universe._
def createOptionType(inner: Type): Type =
appliedType(typeOf[Option[_]], inner)