私はマクロ注釈に取り組んでおり、次のようなものがあります。
def findClass(className: String) : ClassSymbol = {
val tree = c.typecheck(c.parse(s"??? : ${className}"));
return tree.tpe.typeSymbol.asClass;
}
問題は、 whenclassName
が のようなものである場合List
、パラメーターが必要なため、明らかに不平を言うことです。であればList[String]
問題ありません。
正直なところ、classOf[List]
リストのジェネリック型が不変であることを考慮して、たとえば が受け入れられない理由がよくわかりません。classOf[List[String]]
と を実行するとclassOf[List[Integer]]
、同じクラスが返されます。
findClass
したがって、私のメソッドが常にパラメーターなしのクラス、または不変パラメーターを含むクラスを受け取ると仮定すると、どのようにタイプチェックできValDef
ますか?