给定Type,创建包含它的Option Type

时间:2016-08-11 16:45:25

标签: scala reflection

如果inner名为Type,我想创建一个代表Option的新inner,其中包含与def createOptionType(inner: Type): Type = { typeOf[Option[inner]] // this line is pseudocode } 类型相同的类型

例如,执行此操作的方法的签名可能类似于:

{{1}}

This answer部分帮助,但使用泛型方法,而在这种情况下,我传入了一个具体类型,使泛型不可用。

1 个答案:

答案 0 :(得分:5)

您可以使用scala.reflect.runtime.universe.appliedType

import scala.reflect.runtime.universe._

def createOptionType(inner: Type): Type = 
  appliedType(typeOf[Option[_]], inner)