基本上,我有一个类,它有几个返回不同Seq
的getter。但我需要在java代码中使用这些集合。我实现了显式返回java集合的备用getter,但我想以更隐式的方式执行此操作。这样的事情:
class X {
@AsJava //annotation that generates method someSeqJava: java.util.List[Int]
def someSeq: Seq[Int] = Seq(1,2,3,4)
}
或任何其他方式。我不想一直自己写所有这些转换。 感谢。
答案 0 :(得分:5)
查看JavaConversions
/ JavaConverters
。
如果您想使用注释,您可能需要查看AspectJ。
答案 1 :(得分:3)
这类似于@BeanProperty注释,创建一个完成工作的编译器插件应该相对容易。事实上,根据您的需求,您似乎可以在typer
阶段之后挂钩插件(以便符号和类型都可用)。
修改强>
我建议你看看下面的讨论,他们可能会有所帮助:
以下是官方scala网站的简短指南