Java 9 - Preskúmanie REPL

1. Úvod

Tento článok je o jshell, interaktívny REPL Konzola (Read-Evaluate-Print-Loop), ktorá je dodávaná s balíkom JDK pre nadchádzajúce vydanie Java 9. Pre tých, ktorí tento koncept nepoznajú, umožňuje REPL interaktívne spúšťať ľubovoľné úryvky kódu a vyhodnocovať ich výsledky.

REPL môže byť užitočný napríklad na rýchle overenie životaschopnosti nápadu alebo zistenie napr. formátovaný reťazec pre String alebo SimpleDateFormat.

2. Beh

Na začiatok je potrebné spustiť program REPL, ktorý sa vyvolá vyvolaním:

$ JAVA_HOME / bin / jshell

Ak si želáte podrobnejšie správy z shellu, a -v možno použiť príznak:

$ JAVA_HOME / bin / jshell -v

Len čo bude pripravený, privíta nás priateľská správa a v dolnej časti známa výzva v štýle Unixu.

3. Definovanie a vyvolanie metód

Metódy je možné pridať zadaním ich podpisu a tela:

jshell> void helloWorld () {System.out.println ("Hello world");} | vytvorená metóda helloWorld ()

Tu sme definovali všadeprítomnú metódu „ahoj svet“. Dá sa vyvolať pomocou bežnej syntaxe Java:

jshell> helloWorld () Ahoj svet

4. Premenné

Premenné je možné definovať pomocou bežnej syntaxe deklarácie Java:

jshell> int i = 0; i ==> 0 | vytvorená premenná i: int jshell> String company = "Baeldung" company ==> "Baeldung" | vytvorená premenná spoločnosť: String jshell> Dátum dátum = nový Dátum () dátum ==> Ne 26. februára 06:30:16 EST 2017 | vytvorená premenná dátum: dátum

Upozorňujeme, že bodkočiarky sú voliteľné. Premenné je možné deklarovať aj bez inicializácie:

jshell> Súbor súbor súbor ==> null | vytvorený premenný súbor: súbor

5. Výrazy

Akýkoľvek platný výraz Java je akceptovaný a zobrazí sa výsledok vyhodnotenia. Pokiaľ nie je uvedený žiadny explicitný prijímač výsledku, vytvoria sa „scratch“ premenné:

jshell> String.format ("% d fliaš piva", 100) 6 $ ==> "100 fliaš piva" | vytvorená nulová premenná $ 6: Reťazec

REPL je tu veľmi užitočný tým, že nás informuje, že vytvoril stieraciu premennú s názvom $6 čo je hodnota „100 fliaš piva na stene“ a jej typ String.

Možné sú aj viacriadkové výrazy. Jshell je dosť chytrý na to, aby vedel, kedy je výraz neúplný, a vyzve používateľa, aby pokračoval v novom riadku:

jshell> int i = ...> 5; i ==> 5 | upravená premenná i: int | aktualizovať prepísanú premennú i: int

Všimnite si, ako sa výzva zmenila na odsadenú …> znamenať pokračovanie výrazu.

6. Príkazy

Jshell poskytuje pomerne veľa metapríkazov, ktoré nesúvisia s vyhodnocovaním príkazov Java. Všetky začínajú lomkou (/), aby sa odlíšili od bežnej prevádzky. Vydaním môžeme napríklad požiadať o zoznam všetkých dostupných príkazov /Pomoc alebo / ?.

Poďme sa pozrieť na niektoré z nich.

6.1. Dovoz

Na výpis všetkých importov aktívnych v aktuálnej relácii môžeme použiť / import príkaz:

jshell> / import | import java.io. * | importovať java.math. * | import java.net. * | importovať súbor java.nio.file. * | import java.util. * | import java.util.concurrent. * | import java.util.function. * | importovať java.util.prefs. * | import java.util.regex. * | import java.util.stream. *

Ako vidíme, shell začína s už pridanými niekoľkými užitočnými importmi.

6.2. Zoznamy

Práca v REPL nie je ani zďaleka tak ľahká ako mať plne vybavené IDE na dosah ruky: je ľahké zabudnúť, aké premenné majú ktoré hodnoty, aké metódy boli definované atď. Na kontrolu stavu škrupiny môžeme použiť / var, / metódy, / zoznam alebo / história:

jshell> / var | int i = 0 | Reťazcová spoločnosť = "Baeldung" | Dátum dátum = Ne 26. februára 06:30:16 EST 2017 | Súbor file = null | Reťazec $ 6 = "100 fliaš piva na stene" shell> / metódy | void helloWorld () jshell> / list 1: void helloWorld () {System.out.println ("Hello world");} 2: int i = 0; 3: Sieťová spoločnosť = "Baeldung"; 4: Dátum dátum = nový Dátum (); 5: Spisový spis; 6: String.format ("% d fliaš piva na stene", 100) jshell> / history void helloWorld () {System.out.println ("Hello world");} int i = 0; String company = "Baeldung" Dátum date = new Date () Súbor file String.format ("% d fliaš piva na stene", 100) / var / methods / list / history 

Rozdiel medzi / zoznam a / história spočíva v tom, že tento okrem výrazov zobrazuje aj príkazy.

6.3. Ukladanie

Ak chcete uložiť históriu výrazov, stlačte / uložiť možno použiť príkaz:

jshell> / uložiť repl.java 

Týmto sa uloží naša história výrazov repl.java v rovnakom adresári, z ktorého sme spustili jshell príkaz.

6.4. Načítava

Na načítanie predtým uloženého súboru môžeme použiť /otvorené príkaz:

jshell> / otvoriť repl.java 

Načítanú reláciu je potom možné overiť vydaním / var, / metóda alebo / zoznam.

6.5. Končí sa

Keď sme s prácou hotoví, /východ príkaz môže ukončiť shell:

jshell> / ukončiť | Zbohom

Zbohom jshell.

7. Záver

V tomto článku sme sa pozreli na Java 9 REPL. Keďže Java existuje už viac ako 20 rokov, možno prišla trochu neskoro. Mal by sa však ukázať ako ďalší cenný nástroj v našom súbore nástrojov Java.


$config[zx-auto] not found$config[zx-overlay] not found