2011-09-20 77 views
2

基本上,我有一個類,有幾個getter返回不同的Seq s。但我需要在java代碼中使用這些集合。我實現了可替換的getter,它明確返回java集合,但我想以更隱含的方式來實現。類似的東西:如何在scala中生成方法

class X { 

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

} 

或任何其他方式。我不想一直寫所有這些轉換。 謝謝。

回答

3

這與@BeanProperty註釋類似,創建一個編譯器插件可以相對容易地完成這項工作。實際上,根據您的需求,似乎您可以在typer階段之後掛接插件(以便符號和類型都可用)。

編輯:

我建議你看一看下面的討論中,他們可能會有所幫助:

這裏是從官方網站階

+0

是否有任何教程爲scalac創建的編譯器插件的簡短說明? – F0RR

5

看看JavaConversions/JavaConverters

如果你想使用註釋,你可能需要看看AspectJ。