Java 9 - Istraživanje REPL-a

1. Uvod

Ovaj je članak o jshell, interaktivni ZAMJENA Konzola (Read-Evaluate-Print-Loop) koja je u paketu s JDK za nadolazeće izdanje Java 9. Za one koji nisu upoznati s konceptom, REPL omogućuje interaktivno pokretanje proizvoljnih isječaka koda i procjenu njihovih rezultata.

REPL može biti koristan za stvari kao što su brza provjera održivosti ideje ili odgonetanje na pr. formatirani niz za Niz ili SimpleDateFormat.

2. Trčanje

Za početak moramo pokrenuti REPL, što se vrši pozivanjem:

$ JAVA_HOME / bin / jshell

Ako se žele detaljnije poruke iz ljuske, a -v zastava se može koristiti:

$ JAVA_HOME / bin / jshell -v

Jednom kad bude spreman, dočekat će nas prijateljska poruka i poznati upit u stilu Unixa na dnu.

3. Definiranje i pozivanje na metode

Metode se mogu dodati upisivanjem njihovog potpisa i tijela:

jshell> void helloWorld () {System.out.println ("Hello world");} | kreirana metoda helloWorld ()

Ovdje smo definirali sveprisutnu metodu "hello world". Može se pozvati pomoću uobičajene sintakse Java:

jshell> helloWorld () Pozdrav svijete

4. Varijable

Varijable se mogu definirati normalnom sintaksom Java deklaracije:

jshell> int i = 0; i ==> 0 | stvorena varijabla i: int jshell> Niz tvrtke = "Baeldung" tvrtka ==> "Baeldung" | stvorena varijabilna tvrtka: String jshell> Datum datum = novi Datum () datum ==> Ned Veljača 26 06:30:16 EST 2017 | stvorena varijabla datum: Datum

Imajte na umu da točke sa zarezom nisu obvezne. Varijable se također mogu deklarirati bez inicijalizacije:

jshell> Datoteka datoteke datoteke ==> null | stvorena datoteka varijable: Datoteka

5. Izrazi

Prihvaća se bilo koji valjani Java izraz i prikazat će se rezultat ocjene. Ako nije naveden eksplicitni primatelj rezultata, stvorit će se varijable „ogrebotine“:

jshell> String.format ("% d boca piva", 100) $ 6 ==> "100 boca piva" | kreirana varijabla ogrebotina $ 6: String

REPL je ovdje vrlo koristan obavještavajući nas da je stvorio varijablu ogrebotina s imenom $6 čija je vrijednost "100 boca piva na zidu", a njegova vrsta je Niz.

Mogući su i višeredni izrazi. Jshell dovoljno je pametan da zna kada je izraz nepotpun i zatražit će od korisnika da nastavi na novom retku:

jshell> int i = ...> 5; i ==> 5 | modificirana varijabla i: int | ažuriranje prepisalo varijablu i: int

Primijetite kako se prompt promijenio u uvučeni …> da označi nastavak izraza.

6. Naredbe

Jshell nudi popriličan broj meta naredbi koje nisu povezane s procjenom Java izraza. Svi započinju kosom crtom (/) da bi se razlikovali od normalnih operacija. Na primjer, izdavanjem možemo zatražiti popis svih dostupnih naredbi /Pomozite ili /?.

Pogledajmo neke od njih.

6.1. Uvoz

Da bismo popisali sve uvoze aktivne u trenutnoj sesiji, možemo koristiti /uvoz naredba:

jshell> / import | uvoz java.io. * | import java.math. * | uvoz java.net. * | import java.nio.file. * | uvoz java.util. * | uvoz java.util.concurrent. * | import java.util.function. * | import java.util.prefs. * | uvoz java.util.regex. * | uvoz java.util.stream. *

Kao što vidimo, ljuska započinje s već nekoliko dodanih korisnih uvoza.

6.2. Popisi

Rad u REPL-u nije ni približno jednostavan kao kad bismo imali IDE s puno značajki na dohvat ruke: lako je zaboraviti koje varijable imaju koje vrijednosti, koje su metode definirane i tako dalje. Da bismo provjerili stanje ljuske koju možemo koristiti / var, / metode, /popis ili / povijest:

jshell> / var | int i = 0 | Gudačko poduzeće = "Baeldung" | Datum datum = Ned Veljača 26 06:30:16 EST 2017 | Datoteka datoteke = null | Niz 6 USD = "100 boca piva na zidu" jshell> / methods | void helloWorld () jshell> / list 1: void helloWorld () {System.out.println ("Hello world");} 2: int i = 0; 3: Gudačko poduzeće = "Baeldung"; 4: Datum datuma = novi datum (); 5: Datoteka datoteke; 6: String.format ("% d boca piva na zidu", 100) jshell> / history void helloWorld () {System.out.println ("Hello world");} int i = 0; Niz tvrtke = "Baeldung" Datum datum = novi datum () Datoteka datoteke String.format ("% d boca piva na zidu", 100) / var / methods / list / history 

Razlika između /popis i / povijest je da ovaj drugi pored izraza prikazuje naredbe.

6.3. Spremanje

Da biste spremili povijest izraza, /uštedjeti naredba se može koristiti:

jshell> / spremi repl.java 

Ovo štedi našu povijest izraza u repl.java u istom direktoriju iz kojeg smo pokrenuli jshell naredba.

6.4. Učitavam

Za učitavanje prethodno spremljene datoteke možemo koristiti /otvorena naredba:

jshell> / open repl.java 

Učitana sesija se zatim može provjeriti izdavanjem / var, / metoda ili /popis.

6.5. Izlaz

Kad završimo s poslom, /Izlaz naredba može završiti ljusku:

jshell> / exit | Doviđenja

Doviđenja jshell.

7. Zaključak

U ovom smo članku pogledali Java 9 REPL. Budući da Java postoji već više od 20 godina, možda je stigla malo kasno. Međutim, trebao bi se pokazati još jednim vrijednim alatom u našem Java alatu.