Próbowałem jshell i nie mogłem znaleźć opcji wklejenia wielu wyrażeń linii. Czy jest nawet możliwe wklejenie wielu wierszy w jshell. Podobne do tego, co oferuje scala z paste mode
.Wklej wielowierszowy w jshell
Odpowiedz
Więc jeśli masz kodu:
int c = 2;
int j = 4;
int x = 5;
skopiować i wkleić do jshell tylko pierwsze dwie instrukcje są przetwarzane.
Ale jeśli masz kodu:
int c = 2; int j = 4; int x = 5;
i wkleić do jshell:
jshell> int c = 2; int j = 4; int x = 5;
c ==> 2
j ==> 4
x ==> 5
Nawet więcej linii kodu tak:
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);
rzeczywiście działa.
Dlaczego? Nie wiem.
Jedynym sposobem, wiem, że copy/paste zadziała to poprzez (wpisz ją w jshell):
/edit
i można wkleić tyle, ile chcesz.
Dzięki. Zastanawiałem się tylko, czy czegoś brakuje, czy jakiegoś nieudokumentowanego dowództwa. –
@KunalKanojia nie wygląda na to, że coś przegapiłeś ... – Eugene
Próbowałem go i przetwarzane są tylko pierwsze dwa wiersze. Próbowano również z dodatkowymi znakami nowej linii na końcu i więcej niż trzema liniami, a wciąż tylko pierwsze dwa wiersze zostały przetworzone. Nie wiem dlaczego, ale podejrzewam, że to błąd.
To był błąd. Zostało ustalone:
https://bugs.openjdk.java.net/browse/JDK-8169595
Wygląda na to, że naprawili problem z zawieszeniem, ale nadal nie mogę wkleić więcej niż 2 wiersze (kompilacja 9 + 181) –
Według Roberta Field, to została ustalona na [tego błędu] (https://bugs.openjdk.java.net/browse/JDK-8169595). Czy to nadal jest problem dla ciebie? –