Почему и как вы используете 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-печати-цикл

Другие вопросы по тегам