我將使groovy API abit國際化。Groovy中類的方法別名
對於最終級的(例如字符串)
String.metaClass.вСтроку = {-> this.toString() }
然而,這將創建附加閉合。用另一種方法沒有任何方法可以用alias
方法嗎?
事情是這樣的:
String.metaClass.вСтроку = String.metaClass.&toString
我將使groovy API abit國際化。Groovy中類的方法別名
對於最終級的(例如字符串)
String.metaClass.вСтроку = {-> this.toString() }
然而,這將創建附加閉合。用另一種方法沒有任何方法可以用alias
方法嗎?
事情是這樣的:
String.metaClass.вСтроку = String.metaClass.&toString
你可以使用@Category變換這樣
@Category(String) class StringInternationalization {
String вСтроку() {
this.toString()
}
int длина() {
this.length()
}
}
class ApplyMixin {
static {
String.mixin(StringInternationalization)
final helloString = "Привет мир!"
println helloString.вСтроку()
assert helloString.длина() == helloString.length()
}
}
new Main()
這將爲每個本地化類1個Category類和一個類應用所有混入變換(以註冊所有方法。)也應該更快,然後單獨關閉。
更多在這裏讀:http://groovy.codehaus.org/Category+and+Mixin+transformations
什麼是創建一個額外的封閉問題? – Will
將創建附加的java.class。如果我要將所有groovy API國際化,這不是最佳選擇。 – Archer