Я посмотрел на этот вопрос здесь .Проблема с этим вопросом заключается в следующей строке:
Integer i3 = (Integer) -128; /*** Doesn't compile ***/
Как говорят некоторые из ответов:
The compiler interprets the - as the two-arg minus operator, i.e. it's trying to subtract 128 from some other number named Integer, but there's no such variable in scope
Ответы выглядят для меня правильными.Теперь в Groovy я попробовал тот же код, что и раньше:
Integer i3 = (Integer) -128; /*** compiles!!! ***/
, даже этот код строки компилируется:
Integer i3 = (Integer) -(128); /*** compiles ***/
Как Groovy выполняет эту операцию?Все ли языки JVM делают это?Что происходит за кулисами в случае Groovy.
Не нарушает ли это правило Java?Бит запутан.
Для справки я пометил рабочий код Groovy здесь
Заранее спасибо.