2017-01-24 1 views
8

J'essayais jshell et ne pouvais pas trouver l'option pour coller des expressions de ligne multiples. Est-il même possible de coller plusieurs lignes dans jshell. Semblable à ce que propose scala avec paste mode.Coller multiline dans jshell

+0

Selon Robert Field cela a été fixé par [ce bug] (https://bugs.openjdk.java.net/browse/JDK-8169595). Est-ce toujours un problème pour vous? –

Répondre

6

Donc, si vous avez du code comme ceci:

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

copier et coller dans jshell, seules les deux premières déclarations sont traitées.

Mais si vous avez du code comme ceci:

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

et coller dans jshell:

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

Encore plus de lignes de code comme ceci:

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); 

va effectivement travailler.

Pourquoi? Je ne sais pas.

La seule façon que je sais que copier/coller fonctionne est via (tapez dans jshell):

/modifier

et vous pouvez coller autant que vous le souhaitez.

+0

Merci. Je me demandais juste s'il me manquait quelque chose ou une commande non documentée. –

+1

@KunalKanojia ne semble pas avoir manqué quelque chose ... – Eugene

3

Je l'ai essayé et seules les deux premières lignes sont traitées. Également essayé avec des nouvelles lignes supplémentaires à la fin et plus de trois lignes, et encore seulement les deux premières lignes ont été traitées. Je ne sais pas pourquoi mais je pense que c'est un bug.

3

C'était un bug. Il a été fixé:

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

On dirait qu'ils ont corrigé le problème de la pendaison, mais je ne peux toujours pas coller plus de 2 lignes (build 9 + 181) –