2015-10-14 81 views
0

我在Java中有此代碼。重寫java代碼到groovy代碼

MyObject a = MyObject.newMyObject(); 
a.setParameter(Parameters.BASIC); 
CompositeObject co = CompositeObject.newCompositeObject(); 
co.add(BasicFactory.newInputStream(new FileInputStream(file), ResourceType.BASIC, a); 

使用Groovy可以做得更好嗎?

+4

定義「更好」。 –

+0

@ThorbjørnRavnAndersen使用閉包,''中的一些實例化,不使用setters等。 – lapots

+0

刪除';'。使用'with'。 – cfrick

回答

2

這是一個開始。

def a = MyObject.newMyObject() 
a.parameter = Parameters.BASIC 
def co = CompositeObject.newCompositeObject() 
co.add(BasicFactory.newInputStream(new FileInputStream(file), ResourceType.BASIC, a)) 

如果你真正需要的是co那麼你可以做這樣的事情來限制臨時變量的範圍。

def co = CompositeObject.newCompositeObject().with { 
    def a = MyObject.newMyObject() 
    a.parameter = Parameters.BASIC  
    def factory = BasicFactory.newInputStream(new FileInputStream(file), ResourceType.BASIC, a) 
    co.add factory 

    return it 
}