给定一个Type命名inner,我想创建一个新的Type,表示Option包含与...相同类型的类型inner.
例如,执行此操作的方法的签名可能类似于:
def createOptionType(inner: Type): Type = {
typeOf[Option[inner]] // this line is pseudocode
}
Run Code Online (Sandbox Code Playgroud)
这个答案有部分帮助,但是使用了泛型方法,而在这种情况下,我传递了一个具体类型,使泛型不可用.
你可以用scala.reflect.runtime.universe.appliedType它:
import scala.reflect.runtime.universe._
def createOptionType(inner: Type): Type =
appliedType(typeOf[Option[_]], inner)
Run Code Online (Sandbox Code Playgroud)