1
我有簡單的Java註解與一個參數生成具有參數的Java註解:Scala的:使用的Scala宏
public @interface Annot {
String value();
}
另外我有爪哇註釋,需要阿諾的數組作爲參數:
public @interface Annotations {
Annot[] value();
}
我想要使用像這樣的Scala宏生成Annot參數「值」:
object MyAnnotations {
def MyAnnotation: Annot = macro myAnnotationMacro
def myAnnotationMacro(c: whitebox.Context): c.Expr[Annot] = {
import c.universe._
c.Expr(q"""new Annot("value")""")
}
}
雖然th在作品:
@Annotations(Array(
new Annot("value")
))
trait T
這不起作用:
@Annotations(Array(
MyAnnotations.MyAnnotation
)) // too many arguments for constructor Annot:()Annot
trait T
爲什麼?我怎樣才能生成Annot?