#groovy #metaprogramming
#groovy #метапрограммирование
Вопрос:
где разница def foo = u.test " " u.test
работает нормально, где def foo = (u.test) " " (u.test)
возвращает ошибку компиляции с чем-то вроде:
unable to resolve class u.test
...
def foo = (u.test) " " (u.test)
^
1 error
В этом примере u
приведен класс, написанный мной, который реализует интерфейс map.
Комментарии:
1. Может быть, потому
(class)
, что используется для преобразования типов.2. какую версию Groovy вы используете?
3. @MichaelEaster 3.0.5
4. Изменил мою версию groovy на 2.5.13, теперь работает нормально
5. для меня код работает как с groovy 3.0.5, так и с 2.5.13 — может быть, вы случайно забыли первый плюс?!
(u.test) " " (u.test)
попытается преобразовать » » в класс u.test, что приведет к опубликованной вами ошибке
Ответ №1:
причина заключалась в том, что я не использовал groovy-all в своих зависимостях. В 2.5.13 включены некоторые классы, которые позже (3.0.5) были разделены в других пакетах.