Статьи

JShell за пять минут

Этот пост основан на моем посте « 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, являются их собственными.