2017-01-24 10 views
8

Я пытался использовать jshell и не мог найти вариант вставить несколько выражений строки. Возможно ли даже вставить несколько строк в jshell. Подобно тому, что scala предлагает с paste mode.Многострочная паста в jshell

+0

Согласно Роберту поле, это было зафиксировано в [этой ошибке] (https://bugs.openjdk.java.net/browse/JDK-8169595). Это все еще проблема для вас? –

ответ

6

Так что если у вас есть такой код:

int c = 2; 
int j = 4; 
int x = 5; 

Скопируйте и вставьте в jshell, только первые два заявления обрабатываются.

Но если у вас есть такой код:

int c = 2; int j = 4; int x = 5; 

и вставить в jshell:

jshell> int c = 2; int j = 4; int x = 5; 
     c ==> 2 
     j ==> 4 
     x ==> 5 

Еще больше строк кода, как это:

HashMap<Integer, Integer> map2 = new HashMap<>(); for (int i = 0; i < 15; ++i) { map2.put(i, i);map2.put(i, i); } System.out.println(map2); 

будет реально работать.

Почему? Я не знаю.

Единственный способ я знаю, что копирование/вставка будет работать это через (ввести его в jshell):

/редактировать

и вы можете вставить столько, сколько вы хотите.

+0

Спасибо. Мне просто интересно, не хватает ли я чего-то или какой-то недокументированной команды. –

+1

@ KunalKanojia не похоже, что вы что-то пропустили ... – Eugene

3

Я пробовал, и обрабатываются только первые две строки. Кроме того, вы пытались использовать дополнительные строки в конце и более трех строк, и все же обрабатывались только первые две строки. Я не знаю, почему, но я подозреваю, что это ошибка.

3

Это была ошибка. Это было исправлено:

https://bugs.openjdk.java.net/browse/JDK-8169595 
+0

Похоже, что они исправили проблему подвески, но я все еще не могу вставить более двух строк (построить 9 + 181) –