Ответ Берта правильный, но реальная проблема, с которой я столкнулся, заключается в том, что я неправильно понял, что такое def
.Вместо того, чтобы быть var
в JavaScript, вы можете думать об этом как Object
в Java.
Я думал, что использование def
похоже на выполнение (JavaScript)
var test = function() {
alert("test");
}
в то время как в действительности это так же, как (Java)
public Object test() {
return someObject;
}
Это не другой тип функции / замыкания, это как тип возврата - def
может применяться к любому объекту (Groovy не имеет примитивов данных,поэтому любое значение также является объектом, в отличие от Java).
Это помогает моему мозгу Java думать о
def bar = "foo";
как
Object bar = "foo";