如何在scala中生成方法

如何在scala中生成方法,scala,metaprogramming,Scala,Metaprogramming,基本上,我有一个类,它有几个getter返回不同的Seqs。但我需要在java代码中使用这些集合。我实现了交替getter,它显式地返回java集合,但我想以一种更隐式的方式来实现。诸如此类: class X { @AsJava //annotation that generates method someSeqJava: java.util.List[Int] def someSeq: Seq[Int] = Seq(1,2,3,4) } 或者其他任何方式。我不想一直自

基本上,我有一个类,它有几个getter返回不同的
Seq
s。但我需要在java代码中使用这些集合。我实现了交替getter,它显式地返回java集合,但我想以一种更隐式的方式来实现。诸如此类:

class X {

     @AsJava //annotation that generates method someSeqJava: java.util.List[Int]
     def someSeq: Seq[Int] = Seq(1,2,3,4)

}
或者其他任何方式。我不想一直自己写这些转换。
谢谢。

看看
JavaConversions
/
JavaConversions


如果您想使用注释,可能需要查看AspectJ。

这类似于@BeanProperty注释,创建一个执行此任务的编译器插件应该相对容易。事实上,根据您的需要,您似乎可以在
typer
阶段之后挂接插件(这样符号和类型都可用)

编辑:

我建议您查看以下讨论,它们可能会有所帮助:

下面是scala官方网站的简短指南


是否有为scalac创建编译器插件的教程?