2015-10-14 78 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 
}