Почему и как вы используете JShell?
Я прошел несколько обучающих программ для JShell, и я до сих пор не понимаю самую важную часть: зачем мне вообще использовать JShell?
Вот что говорит Oracle:
"Вы можете протестировать отдельные операторы, опробовать различные варианты метода и поэкспериментировать с незнакомыми API в сеансе JShell".
Да, отлично, но для всех этих вещей я могу просто использовать IDE. Я понимаю, что REPL должен ускорить оценку кода. Однако, тестирование фрагмента кода в IDE в фиктивном проекте Hello World с помощью Sysout точно не медленнее?
Фактически, IDE предоставляют автозаполнение, обнаруживают ошибки на ранних стадиях, и я могу проверить реализацию метода / класса одним щелчком мыши. Это все должно сделать тестирование кода в IDE быстрее, чем в JShell?
Что мне не хватает? Может кто-нибудь дать мне пару вариантов использования, где использование JShell лучше, чем использование IDE? Как вы, ребята, используете JShell?
1 ответ
Хотя я бы очень рекомендовал вам продолжить и прочитать мотивы и цели Java Shell.
Тем не менее, отвечая на ваш вопрос с небольшой практической практикой, я был бы рад узнать о времени, которое вы потратите, и о процедуре, которой вы будете следовать, испытывая это на IDE. Итак, с несколькими из них, здесь вы идете: -
1. Недавно я узнал, что в Java 9 представлены перегруженные методы фабрики удобства для коллекций, а затем мне стало интересно, что они делают и как их использовать.
меры
-> Type 'jshell' on command prompt (assuming JAVA_HOME is set to JDK9's bin)
-> Type 'List.o'
-> Press Tab (completes the `of`)
-> Tab displays all signatures
-> Tab starts reading the documentation from first
2. Как насчет сохранения синтаксиса кода? Если вы заметили на изображении выше инициализацию List
даже не удосужился позаботиться о переменной, в которой она хранится, заканчивая точкой с запятой и т. д.
3. Как быстро вы можете обнаружить исключения, генерируемые каким-то фрагментом кода, который вы собираетесь реализовать? Итак, случай использования здесь, я хочу создать Map
из String(название фруктов) в String(их цвет), затем добавьте еще несколько фруктов к нему на более позднем этапе и оставьте те цвета, в которых я не уверен. Тогда наконец получите список всех тех фруктов, которые являются Красными. И, конечно же, поскольку я изучаю Java 9 в эти дни, я постараюсь использовать столько же API, сколько из Java9.
И хотя вы пытаетесь добавить весь этот (^^) код в вашу IDE, вы сами можете заметить, сколько времени вам понадобится для реализации всех этих характеристик статических фабричных методов неизменяемой карты.
PS:
Роберт представил здесь Jshell, который представляет собой подробное представление о том, как все это может быть эффективным.
Выполняя все вышеперечисленное, имейте в виду, что целью Jshell не является быть IDE.
И все это, в общем, делает простые эксперименты с языком, минуя стадию компиляции цикла "код -> компиляция -> выполнение". чтения EVAL-печати-цикл