给定一个名为inner
的Type
,我想创建一个新的Type
,它代表一个包含与inner
相同类型的Option
。
def createOptionType(inner: Type): Type = {
typeOf[Option[inner]] // this line is pseudocode
}
这个答案有部分帮助,但是使用了泛型方法,而在这种情况下,我传入了一个具体类型,使得泛型不可用。
您可以使用scala.reflect.runtime.universe.appliedType
:
import scala.reflect.runtime.universe._
def createOptionType(inner: Type): Type =
appliedType(typeOf[Option[_]], inner)