我有一個GroovyBean,我想要初始化。基本上,我想在構造對象期間轉換其中一個輸入參數。在Java中,我會創建一個構造函數並在構造函數中進行轉換。如何初始化Groovybean?
class JavaBean {
int someInt;
public JavaBean(SomeObject transformMe) {
someInt = transform(transformMe)
}
private int transform(SomeObject transformMe() {
// Do some transformation
}
}
這是一個人爲的例子,但讓我們說轉變是不平凡的。
我在Groovy目前的解決方案是:
class GroovyBean {
SomeObject transformMe
@Lazy int someInt = transform(transformMe)
def transform(SomeObject transformMe() {
// Do some transformation
}
}
用bean的,我倒是做到這一點:
def bean = new GroovyBean(transformMe: anObjectToBeTransformed)
println bean.someInt
我想避免創建一個構造,因爲我倒是喜歡保持命名參數構造。我不需要在GroovyBean中保留transformMe參考,只有在獲取someInt時纔會使用它。
有沒有更好的方式來初始化GroovyBean而不失去使用命名參數的能力?
你可以爲groovybean定義一個構造器,你是否嘗試過類似的東西。 – erimerturk