2015-10-01 5 views
0

В Java/C++, вы можете ввести subscopes, полезно, если у вас есть копия-паста код, который вы действительно не хотите изменить:Использование суб прицелы в Groovy

public void function() { 
    Map<String, Person> ... 

    { 
     Person obj ... 
     ... 
     map.add(obj) 
    } 
    { 
     Person obj ... 
     ... 
     map.add(obj) 
    } 

} 

только, чтобы избежать глупых ошибок повторения, где это вы забудете изменить переменную1 на переменную2. Я в первую очередь использую это в тестах.

В Groovy, однако, это создает замыкания и не ведет себя одинаково. Есть ли способ Groovy сделать это, я скучаю?

+0

Можете ли вы добавить фактический тестовый пример, написанный в Groovy, чтобы правильно изобразить то, что вы пытаетесь достичь? – dmahapatro

ответ

0

Чтобы использовать блок кода Java в Groovy, вам необходимо пометить блок кода.

public void function() { 
    Map<String, Person> ... 

    a: { 
     Person obj ... 
     ... 
     map.add(obj) 
    } 
    b: { 
     Person obj ... 
     ... 
     map.add(obj) 
    } 

} 

Подробнее об этом можно узнать here.