0
SpotifyのScioライブラリのマクロ注釈を使用しています。私はString
型の変数を定義し、このように注釈を付けたいと思います:Scalaマクロ:変数に割り当てられた文字列リテラルが一致しません
val schemaString = """schema here"""
@BigQueryType.fromSchema(outputString) class BigQuery
私が直接String
に注釈を付ける場合、これは、しかし、コンパイルされません、それは動作します:
@BigQueryType.fromSchema("""schema here""") class BigQuery
このマッチングはhereに行われ、次のように基本的にコードは次のとおりです。
def str(tree: c.Tree) = tree match {
// "string literal"
case Literal(Constant(s: String)) => s
// "string literal".stripMargin
case Select(Literal(Constant(s: String)), TermName("stripMargin")) => s.stripMargin
case _ => c.abort(c.enclosingPosition, errorMessage)
}
これが一致しない理由の質問です変数は、文字列ですか?そして、最初の例を動作させる方法があれば?