如何在scala中生成方法
基本上,我有一个类,它有几个getter返回不同的如何在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) } 或者其他任何方式。我不想一直自
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
阶段之后挂接插件(这样符号和类型都可用)
编辑:
我建议您查看以下讨论,它们可能会有所帮助: