Этот пост основан на моем посте « My Top Java 9 Features», в котором более подробно рассматриваются эти функции. Здесь мы покажем вам, как вы можете изучить jshell за пять минут и улучшить свой опыт разработки на Java 9.
Начиная
Предполагая, что вы загрузили и установили Java 9, вы можете запустить оболочку, набрав:
|
1
2
|
jshell |
Или если вы хотите многословно —
|
1
2
3
4
5
|
C:\jdk9TestGround>jshell -v| Welcome to JShell -- Version 9| For an introduction type: /help intro jshell> |
переменные
Просто введите переменную, с или без точки с запятой —
|
1
2
3
|
jshell> int i = 1;i ==> 1| created variable i : int |
Неназначенные значения автоматически присваиваются переменной, начинающейся с $ —
|
1
2
3
|
jshell> "Hello World"$1 ==> "Hello World"| created scratch variable $1 : String |
Это означает, что мы можем повторно использовать значение позже —
|
1
2
|
jshell> System.out.println($1);Hello World |
Потоки управления
Следующим шагом в jshell является использование потоков управления (для, если, пока,…). Мы можем сделать это, введя наше условие, используя return для каждой новой строки —
|
1
2
3
4
|
jshell> if ("Hello World".equals($1)) { ...> System.out.println("Woohoo my if condition works"); ...> }Woohoo my if condition works |
Быстрый совет — использовать TAB для завершения кода.
методы
Мы можем объявить метод аналогично управлению потоком и нажать
для каждой новой строки —
|
1
2
3
4
|
jshell> String helloWorld() { ...> return "hello world"; ...> }| created method helloWorld() |
Тогда назови это —
|
1
2
|
jshell> System.out.println(helloWorld());hello world |
Мы также можем изменять методы в нашей оболочке и иметь методы, вызывающие методы, которые еще не определены —
|
1
2
3
4
5
|
jshell> String helloWorld() { ...> return forwardReferencing(); ...> }| modified method helloWorld(), however, it cannot be invoked until method forwardReferencing() is declared| update overwrote method helloWorld() |
Теперь мы исправим метод —
|
1
2
3
4
5
|
jshell> String forwardReferencing() { ...> return "forwardReferencing"; ...> }| created method forwardReferencing()| update modified method helloWorld() |
Классы
Мы также можем определить классы в jshell —
|
1
2
3
4
5
6
|
jshell> class HelloWorld { ...> public String helloWorldClass() { ...> return "helloWorldClass"; ...> } ...> }| created class HelloWorld |
И назначать и получать к ним доступ —
|
1
|
/env |
Полезные команды
Теперь у нас есть основы вот несколько быстрых команд —
| табуляция | Завершение кода |
| / вары | список переменных в текущей оболочке |
| / методы | список методов в текущей оболочке |
| /список | Все фрагменты кода в сеансе jshell |
| / импорт | Текущий импорт в оболочке |
| / методы | список методов в текущей оболочке |
| / типы | Текущие классы, определенные в оболочке, в приведенном выше случае мы увидим «класс HelloWorld» |
| /редактировать | Позволяет редактировать вашу сессию в редакторе (по умолчанию JEditPad) |
| /выход | закрытие сессии |
| Опубликовано на Java Code Geeks с разрешения Мартина Фаррелла, партнера нашей программы JCG . См. Оригинальную статью здесь: Введение в виртуальную машину Java (JVM)
Мнения, высказанные участниками Java Code Geeks, являются их собственными. |