groovy обучение на русском
Apache NetBeans 12.5
Этот документ используется для начала работы с Groovy в IDE NetBeans. В процессе работы будет создано приложение на языке Java, добавлен элемент JFrame, а из файла Groovy будет получено простое сообщение.
Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.
пакет Java, версии 7.2, 7.3, 7.4, 8.0
Подключаемый модуль Groovy
Активация подключаемого модуля Groovy
Поддержка Groovy отключена по умолчанию при установке Java-версии среды IDE. Для работы с Groovy в IDE сначала необходимо активировать подключаемый модуль Groovy в диспетчере подключаемых модулей.
Выберите ‘Сервис’ > ‘Подключаемые модули’ в главном меню, чтобы открыть диспетчер подключаемых модулей.
Перейдите на вкладку Установлено в диспетчере подключаемых модулей.
Выберите ‘Показать сведения’ и найдите подключаемый модуль Groovy и Grails в списке подключаемых модулей.
В качестве альтернативы вы можете ввести groovy в поле поиска, чтобы отфильтровать список подключаемых модулей.
Установите подключаемый модуль ‘Groovy and Grails’ и нажмите ‘Активировать’.
Нажмите кнопку ‘Активировать’ в окне ‘Мастер установки NetBeans IDE’, чтобы активировать подключаемый модуль Groovy.
Нажмите кнопку ‘Завершить’ в окне ‘Мастер установки NetBeans IDE’ после завершения установки и затем нажмите ‘Закрыть’ в диспетчере подключаемых модулей.
Создание приложения
В этом разделе вы узнаете, как создать новое приложение Java.
Выберите ‘Файл > Создать проект’ (Ctrl-Shift-N; ⌘-Shift-N в Mac) в главном меню, чтобы открыть мастер создания проектов.
В категории Java выберите ‘Приложение Java’. Нажмите кнопку «Далее».
В поле ‘Имя проекта’ введите GroovyJavaDemo, а в поле ‘Местоположение проекта’ укажите папку, где будет создано приложение.
Снимите флажок «Создать главный класс». Нажмите кнопку «Готово».
При нажатии на кнопку ‘Готово’ IDE создает проект, который отображается в окне ‘Проекты’.
Создание класса Java и файла Groovy
В этом разделе вы узнаете, как создать элемент JFrame и класс Groovy.
Щелкните правой кнопкой мыши узел проекта в окне ‘Проекты’ и выберите ‘Создать > Другое’. Откроется диалоговое окно мастера создания файлов.
В категории ‘Формы Swing GUI’ выберите ‘Форма JFrame’. Нажмите ‘Далее’.
В поле ‘Имя класса’ введите DisplayJFrame.
В поле ‘Пакет’ введите org.demo. Нажмите ‘Готово’.
При нажатии на кнопку ‘Готово’ в среде IDE создается форма JFrame, и в редакторе открывается соответствующий файл.
Щелкните правой кнопкой мыши узел проекта в окне ‘Проекты’ и выберите ‘Создать > Другое’. Откроется диалоговое окно мастера создания файлов.
В категории Groovy выберите ‘Класс Groovy’. Нажмите ‘Далее’.
В поле ‘Имя класса’ введите GreetingProvider.
При нажатии на кнопку ‘Готово’ IDE создает файл Groovy и открывает его в редакторе.
Если развернуть узел проекта в окне ‘Проекты’, можно увидеть два только что созданных файла под узлом ‘Исходные пакеты’.
Вызов файла Groovy из класса Java
В этом разделе вы узнаете, как создать код для взаимодействия между файлом Groovy и классом Java.
Откройте файл GreetingProvider.groovy в редакторе (если он еще не открыт).
Задайте переменную приветствия в определении класса, добавив следующий код (выделен полужирным шрифтом). Сохраните изменения.
Откройте файл DisplayJFrame.java в редакторе (если он еще не открыт) и перейдите на вкладку ‘Конструирование’.
Откройте палитру (выберите ‘Окно > Палитра’ в главном меню) и перетащите элемент ‘Текстовое поле’ ( jTextField ) и палитры на форму JFrame.
Перейдите на вкладку ‘Исходный код’ и добавьте следующий исходный код в верхнюю часть тела класса, чтобы создать экземпляр класса Groovy и вызвать метод getGreeting() в классе Groovy в конструкторе.
Для поиска в классе Java методов, необходимых для класса Groovy, можно использовать автозавершение кода.
Щелкните правой кнопкой мыши узел проекта в окне «Проекты» и выберите «Выполнить».
Если выбрать команду ‘Выполнить’, IDE выполнит сборку и запуск приложения.
В текстовом поле в окне приложения отображается текст из класса Groovy.
Теперь читатель может создать базовое приложение на языке Java, взаимодействующее с Groovy.
Дополнительные сведения
IDE NetBeans также поддерживает веб-платформу Grails, в которой используется язык Groovy при веб-разработках на Java. Дополнительные сведения об использовании платформы Grails с IDE NetBeans см. в разделе Введение в платформу Grails.
Groovy за 15 минут – краткий обзор
Groovy — объектно-ориентированный язык программирования разработанный для платформы Java как альтернатива языку Java с возможностями Python, Ruby и Smalltalk.
Groovy использует Java-подобный синтаксис с динамической компиляцией в JVM байт-код и напрямую работает с другим Java кодом и библиотеками. Язык может использоваться в любом Java проекте или как скриптовый язык.
Возможности Groovy (отличающие его от Java):
— Статическая и динамическая типизация
— Встроенный синтаксис для списков, ассоциативных массивов, массивов и регулярных выражений
— Замыкания
— Перегрузка операций
Более того, почти всегда java-код — это валидный groovy-код.
Установка
В IDE NetBeans 7.0 поддержка groovy идет из коробки, для IDE Eclipse существует очень хороший плагин, который можно взять здесь.
Groovy
Самое главное отличие от java: в Groovy всё является объектами. Все примитивные типы сразу же упаковываются в объекты. Т.е. «int x» на самом деле является «Integer x»
Следует не забывать о том, что все упаковочные типы — неизменяемые, поэтому каждый раз при каком-либо вычислении будет создаваться новый объект.
Строки в Groovy
1) Java Strings — строки в одинарных кавычках
2) Groovy Strings, они же GStrings — в обычных кавычках
В строках groovy можно вставлять параметры, в обычные строки — нельзя
К строкам применимы операции + и *
В groovy есть поодержка регулярных выражений на уровне конструкций языка:
Встроенная поддержка maps + lists
Так же на уровне конструкций языка поддерживаются словари (maps) и списки:
Ranges
Получать доступ к элементам списков в groovy можно следующим образом:
Range — это такой же объект, поэтому возможны конструции, подобные последней. Отрицательные индексы, как в python, возвращают элементы с конца списка.
Range можно составить из строк:
Более того, range можно сделать из любого объекта, у которого есть методы next() и prev().
Циклы
Циклы в groovy точно такие же, как и в java, плюс к ним добавляется еще один «foreach»:
Функции
Ключевое слово return указывать не обязательно — по умолчанию будет возвращено значение последней упомянутой переменной в фукции.
Closures
Closure — это анонимная функция
У многих объектов есть методы, в качестве параметров которым передаются closure:
Доступно большое количество методов для обработки последовательностей, к которым можно применять замыкания:
В closure так же не обязательно использовать ключевое слово return. Если явно не задано имя параметру, то по умолчанию используется it.
Так как closure является объектом, то ничего не мешает возвращать его из другого closure, и таким образом создавать функции высших порядков:
Файлы
Для директорий есть функции eachFile и eachFileRecursive:
Для обработки текстовых файлов — функция eachLine:
Писать в файлы так же очень удобно:
Классы
Неизменяемые классы задаются с помощью аннотации Immutable:
При использовании этой аннотации нужно явно указывать, какого типа данных поле.
Операторы
Проверяет переменную a, и если в ней null или false, то берет указанное следом значение. Иначе берется значение переменной a.
«?.» Safe navigation
Используется для избежания ошибки NullPointerException
Вернет null, если если в user содержится null вместо того, чтобы бросать NullPointerException.
«*.» Spread operator
Применяет указанный метод для всех элементов какой-либо коллекции. Эквивалент следующему:
Так же монжо использовать для составления списков и словарей:
Оператор «==» уже перегружен для всех объектов — и вызывает метод «isEquals()». Полный список методов, которые нужно переопределить для перегрузки операторов, доступен здесь: http://groovy.codehaus.org/Operator+Overloading.
SQL запросы обрабатываются очень просто:
В groovy существуют билдеры, которые можно использовать для генерации XML. Для генерации создается экземпляр объекта MarkupBuilder, на котором вызываются псевдо-методы — название этого метода и переданные параметры будет использоваться для генерации тега:
В качестве параметра конструктору MarkupBuilder можно передавать любой PrintWriter:
Парсинг XML так же очень простой:
Groovlets
С помощью класса GroovyServlet возможно запускать скрипты на Groovy как сервлеты.
В первую очередь, для этого нужно добавить несколько строчек в web.xml:
— request & response
— context, application, session
— out (= response.getWriter())
— sout (= response.getOutputStream())
— html (= new MarkupBuilder(out))
Отдаст браузеру сгенерированную html-страницу.
Хочу всё знать: язык Groovy
Если вы никогда не слышали о языке программирования Groovy, то сейчас самое подходящее время начать им интересоваться. Всё дело в том, что в рейтинге TIOBE, основанном на популярности языков в поисковых системах, Groovy занял 18 место, обойдя за последний год уже знакомые нам Dart и R и вплотную приблизившись к индексам Visual Basic и Object Pascal.
Так что в этом языке такого удивительного и почему только сейчас, спустя 13 лет после своего создания, он начал подбираться к лидирующим позициям?
Краткая справка
Прежде чем понять феномен Groovy, обратимся к моменту его создания. Впервые он был упомянут в 2003 году, как язык, дополняющий Java с возможностями Python, Ruby и Smalltalk. Надо понимать, что в то время Java уже был самым популярным языком программирования, поэтому разработчики пытались придумать не замену, а скорее улучшение.
Так Groovy оказался в компании Java-подобных языков, среди которых также выделялся Scala. Вплоть до 2015 года именно последнему прочили стать заменой Java (самое удивительное, что эти слова принадлежат никому иному, как создателю Groovy Джеймсу Стрэчену), но судьба похоже распорядилась иначе.
Преимущества
Спросив любого человека, который имеет опыт работы с Groovy, вы узнаете, что главное преимущество Groovy – это то, что он спокойно «проглатывает» программы на Java. Если искать сравнение в графике, то Groovy – это новый слой, который, с одной стороны, основывается на исходном изображении и может его в точности повторять, а с другой – способен на качественные преобразования исходника.
Впрочем, есть и реальные полезности, как то возможность использовать замыкания, статическая и динамическая типизации или специальный синтаксис для работы с массивами, списками и регулярными выражениями. Однако именно «бесшовное» сопряжение с Java, сдобренное относительной легкостью изучения, помогло Groovy найти отклики в сердцах программистов.
Что касается стремительного взлёта за последний год, то основной причиной послужил переход под знамена Apache Foundation в мае 2015 года. Сразу после этого, многие ведущие технологические компании, опираясь на репутацию Apache, начали на постоянной основе внедрять и использовать Groovy в качестве одного из инструментов. И стоит признать, от этого сотрудничества пока все в выигрыше.
Кому стоит учить
Всем, кто хочет быть на передовой, чья профессия связана с Java, тестировщикам и тем, кто хочет просто немного расширить свои горизонты. А может вам просто надоело работать со Scala, как например вице-президенту Twitter.
Что почитать
Как всегда, начинаем с перечисления ресурсов от производителя:
http://www.groovy-lang.org — официальный сайт. Если вы последний раз заходили сюда пару лет назад, то сильно удивитесь, как косметическим преобразованиям, так и разделу под названием Documentation. В Apache Foundation быстро нашли причину ранней непопулярности Groovy и поспешили снабдить пользователя всей необходимой информацией;
http://www.groovy-lang.org/events.html — важные мероприятия, посвящённые Groovy. В России они, к сожалению, пока не проводятся, зато если соберётесь в отпуск заграницу – не забудьте заглянуть и поинтересоваться, нет ли поблизости какой конференции.
Далее перейдем к хорошим книгам:
Grails. Гибкость Groovy и надежность Java, Глен Смит, Питер Ледбрук – прекрасная книга, посвященная главному фреймворку Groovy с массой практических уроков. Преимущественно для веб-разработчиков;
Groovy и Grails. Практические советы, Башар Абдул-Джавад – не столь увлекательное чтиво по сравнению с предыдущим (субъективно), но также будет иметь практическую ценность;
Making Java Groovy, Кеннет Коузен — книга, ориентированная на Java-разработчиков, которым захотелось сделать свою жизнь чуть проще.
Завершим знакомство с Groovy сторонними, но от того не менее полезными ресурсами:
https://habrahabr.ru/post/122127/ — всего за 15 минут вы прочитаете и усвоите основны Groovy.
https://ru.wikibooks.org/wiki/Groovy — довольно неплохой викиучебник на русском языке;
Testing with Groovy — если вы тестировщик и всё ещё читаете этот текст, то эта ссылка специально для вас;
Если вы никогда не слышали о языке программирования Groovy, то сейчас самое подходящее время начать им интересоваться. Всё дело в том, что в рейтинге TIOBE, основанном на популярности языков в поисковых системах, Groovy занял 18 место, обойдя за последний год уже знакомые нам Dart и R и вплотную приблизившись к индексам Visual Basic и Object Pascal.
Так что в этом языке такого удивительного и почему только сейчас, спустя 13 лет после своего создания, он начал подбираться к лидирующим позициям?
Краткая справка
Прежде чем понять феномен Groovy, обратимся к моменту его создания. Впервые он был упомянут в 2003 году, как язык, дополняющий Java с возможностями Python, Ruby и Smalltalk. Надо понимать, что в то время Java уже был самым популярным языком программирования, поэтому разработчики пытались придумать не замену, а скорее улучшение.
Так Groovy оказался в компании Java-подобных языков, среди которых также выделялся Scala. Вплоть до 2015 года именно последнему прочили стать заменой Java (самое удивительное, что эти слова принадлежат никому иному, как создателю Groovy Джеймсу Стрэчену), но судьба похоже распорядилась иначе.
Преимущества
Спросив любого человека, который имеет опыт работы с Groovy, вы узнаете, что главное преимущество Groovy – это то, что он спокойно «проглатывает» программы на Java. Если искать сравнение в графике, то Groovy – это новый слой, который, с одной стороны, основывается на исходном изображении и может его в точности повторять, а с другой – способен на качественные преобразования исходника.
Впрочем, есть и реальные полезности, как то возможность использовать замыкания, статическая и динамическая типизации или специальный синтаксис для работы с массивами, списками и регулярными выражениями. Однако именно «бесшовное» сопряжение с Java, сдобренное относительной легкостью изучения, помогло Groovy найти отклики в сердцах программистов.
Что касается стремительного взлёта за последний год, то основной причиной послужил переход под знамена Apache Foundation в мае 2015 года. Сразу после этого, многие ведущие технологические компании, опираясь на репутацию Apache, начали на постоянной основе внедрять и использовать Groovy в качестве одного из инструментов. И стоит признать, от этого сотрудничества пока все в выигрыше.
Кому стоит учить
Всем, кто хочет быть на передовой, чья профессия связана с Java, тестировщикам и тем, кто хочет просто немного расширить свои горизонты. А может вам просто надоело работать со Scala, как например вице-президенту Twitter.
Что почитать
Как всегда, начинаем с перечисления ресурсов от производителя:
http://www.groovy-lang.org — официальный сайт. Если вы последний раз заходили сюда пару лет назад, то сильно удивитесь, как косметическим преобразованиям, так и разделу под названием Documentation. В Apache Foundation быстро нашли причину ранней непопулярности Groovy и поспешили снабдить пользователя всей необходимой информацией;
http://www.groovy-lang.org/events.html — важные мероприятия, посвящённые Groovy. В России они, к сожалению, пока не проводятся, зато если соберётесь в отпуск заграницу – не забудьте заглянуть и поинтересоваться, нет ли поблизости какой конференции.
Далее перейдем к хорошим книгам:
Grails. Гибкость Groovy и надежность Java, Глен Смит, Питер Ледбрук – прекрасная книга, посвященная главному фреймворку Groovy с массой практических уроков. Преимущественно для веб-разработчиков;
Groovy и Grails. Практические советы, Башар Абдул-Джавад – не столь увлекательное чтиво по сравнению с предыдущим (субъективно), но также будет иметь практическую ценность;
Making Java Groovy, Кеннет Коузен — книга, ориентированная на Java-разработчиков, которым захотелось сделать свою жизнь чуть проще.
Завершим знакомство с Groovy сторонними, но от того не менее полезными ресурсами:
https://habrahabr.ru/post/122127/ — всего за 15 минут вы прочитаете и усвоите основны Groovy.
https://ru.wikibooks.org/wiki/Groovy — довольно неплохой викиучебник на русском языке;
Testing with Groovy — если вы тестировщик и всё ещё читаете этот текст, то эта ссылка специально для вас;
Русские Блоги
Простое обучение Groovy
Окружающая среда развития Groovy
Окружающая среда разработки, которая построена на Ubuntu, все еще очень проста, а также может обратиться к официальному сайту.Groovy официальный сайт
Некоторые базовые знания Groovy
4. При определении функции это также тип указанных параметров.
Возвращаемое значение функции также может быть указано без указания, без указания возвращаемого значения функция, вернутся в соответствии с результатом выполнения функции в функции, и использовать Def, чтобы объявить, каштан:
5. Groovy поддерживает поддержку строки очень мощной, но есть несколько способов использования.
Тип данных в Groovy
Основным типом данных Java была упакована на объекты Groovy, только объектами. Отказ Отказ
Groovy контейнер
Закрытие Groovy
Если закрытие не определяет параметры, существует параметр, это имя параметра, и роль этого аналогична. Это представляет параметры закрытия。
Класс сценария, файл ввода / вывода и XML
Переменные и объем в сценарии
Операция ввода / вывода файла
Операция ввода / вывода Groovy сделала более простая упаковка на основе Java
Работа XML
В дополнение к простому исключению ввода-вывода, операция XML в Groovy чрезвычайно очень очень. В Groovy XML Parsing предоставляет аналогичный подход к XPath, названный GPATH. Это класс, который обеспечивает соответствующую API. Для XPath, пожалуйста, смотритеWiki。
GPATH Функции включает в себя: приведенный пример, от официальной документации Groovy
Groovy
Данный учебник представляет из себя руководство по языку программирования Groovy
Содержание
Установка и настройка [ править ]
На странице загрузки выбираем удобный способ установки (предварительно установив Java (JDK)). После установки могут быть доступны Groovy Console и Groovy Shell в которых можно набирать код и запускать его.
Также запустить код можно прямо из Groovy Web Console.
Перед запуском проверьте чтобы в путях Вашей ОС были прописаны переменная GROOVY_HOME и путь в переменной PATH к исполняему файлу groovy.bat (или groovy.sh)
Также файл с кодом можно выполнить через Java. Делается это так:
Первая программа [ править ]
Откройте редактор и напишите программу. По традиции, первая программа должна просто выводить приветствие миру:
Сохраните её в файл helloworld.groovy и запустите.
На экране появится надпись:
На этом традиционную часть можно считать выполненной.
Комментарии и демонстрация результата [ править ]
Комментарием называется часть программного кода, пропускаемая при обработке (интерпретации или компиляции).
Переменные [ править ]
Переменная, которая может иметь неопределенное значение на этапе компиляции или надо скрыть этот тип, в Groovy определяется ключевым словом def (аналогично var в Java):
Строки [ править ]
В Groovy есть 2 типа строк:
Списки [ править ]
Groovy содержит встроенную поддержку списков. Списки объявляются путем перечисления элементов в квадратных скобках:
Обращение к элементам списка осуществляется по индексу, как к массиву в Java:
Новые элементы могут быть добавлены в список различными способами:
Теперь, совместное использование списков и ranges:
Также, для индексирования можно использовать и списки:
Также, Groovy предоставляет встроенный цикл, для перебора элементов списка, или элементов любого объекта, реализующего интерфейс java.lang.Iterable:
Map (Ассоциативный массив) [ править ]
Аналогично обычным массивам (спискам), Groovy поддерживает прозрачный синтаксис для работы с maps (ассоциативными массивами). Объявление выглядит следующим образом:
Также, существует специальный синтаксис для объявления пустых map:
Доступ к элементам осуществляется по ключу, с использованием оператора [], или же с ключом как полем:
Аналогично производится и изменение элементов:
Для хранения объектов в качестве ключа можно использовать скобки ():
Условное исполнение [ править ]
Одной из наиболее важных особенностей любого языка программирования является возможность выполнять различные коды в разных условиях. Простейший способ сделать это состоит в использовании IF конструкции. Например:
Не беспокойтесь о длинной первой строке, это просто какой-то код, чтобы определить, сейчас утро или вечер. Остальная часть кода выполняется следующим образом: сначала оценивается выражение в круглых скобках и в зависимости от результата true (истинно) или false (ложно) выполняется первый или второй блок кода. Смотрите ниже раздел логические выражения.
Обратите внимание, что блок else не требуется, в отличие от первого блока:
Логические выражения [ править ]
Более сложные логические выражения используют один из булевых операторов:
Функции и методы всегда возвращают, как результат, последнее выражение.
Closures (Замыкания) [ править ]
Синтаксис замыкания : < [closureArguments->] statements >
В замыканиях по умолчанию присутствует переменная it и ссылается на первый параметр в замыкании:
Определение замыкания в классе и его вызов:
Если нужно передать замыкание в метод принимающий интерфейс(например функциональный), то делают так:
Специальный класс Expando для создания динамических объектов и методов (как замыкания) которые можно вызывать:
Работа с файлами [ править ]
Работа со строками [ править ]
Classes and Objects (Классы и объекты) [ править ]
Описание и создание класса(по умолчанию класс имеет тип доступа public, а переменные класса имеют тип доступа private, но компилятор groovy сам сделает для этих полей геттеры и сеттеры с доступом public):
Groovy добавляет к обычному классу конструктор принимающий один аргумент типа Map если не определен другой конструктор.
С помощью аннотации @MapConstrutor мы можем добавить к классу конструктор с параметром Map: