Java 9 - A REPL feltárása

1. Bemutatkozás

Ez a cikk arról szól jshell, interaktív REPL (Read-Evaluate-Print-Loop) konzol, amely a JDK-val együtt van a következő Java 9 kiadáshoz. Azok számára, akik nem ismerik a koncepciót, a REPL lehetővé teszi tetszőleges kódrészletek interaktív futtatását és eredményeik kiértékelését.

A REPL hasznos lehet például egy ötlet életképességének gyors ellenőrzésére vagy kitalálására pl. formázott karakterlánc Húr vagy SimpleDateFormat.

2. Futás

A kezdéshez futtatnunk kell a REPL-t, amely a következő meghívásával történik:

$ JAVA_HOME / bin / jshell

Ha részletesebb üzenetküldést kíván a héjról, a -v zászló használható:

$ JAVA_HOME / bin / jshell -v

Miután elkészült, barátságos üzenet és alul egy ismerős Unix-stílusú gyors üzenet fog fogadni bennünket.

3. Módszerek meghatározása és meghívása

A módszerek hozzáadhatók az aláírás és a törzs beírásával:

jshell> void helloWorld () {System.out.println ("Hello world");} | létrehozott módszer helloWorld ()

Itt definiáltuk a mindenütt jelen lévő „hello world” módszert. Meghívható normál Java szintaxissal:

jshell> helloWorld () Helló világ

4. Változók

A változókat a normál Java deklarációs szintaxissal lehet meghatározni:

jshell> int i = 0; i ==> 0 | létrehozott i változó: int jshell> String company = "Baeldung" company ==> "Baeldung" | létrehozott változó vállalat: String jshell> Dátum dátum = új Dátum () dátum ==> Február 26. vasárnap 06:30:16 EST 2017 | létrehozott változó dátum: Dátum

Vegye figyelembe, hogy a pontosvesszők nem kötelezőek. A változókat inicializálás nélkül is deklarálhatjuk:

jshell> Fájlfájl ==> null | létrehozott változó fájl: File

5. Kifejezések

Minden érvényes Java kifejezés elfogadásra kerül, és az értékelés eredménye megjelenik. Ha nincs megadva az eredmény kifejezett vevője, akkor a „semmiből” változók jönnek létre:

jshell> String.format ("% d üveg sör", 100) $ 6 ==> "100 üveg sör" | létrehozott semmibe változó $ 6: String

A REPL nagyon hasznos itt azzal, hogy tájékoztat minket arról, hogy létrehozott egy kaparós változót $6 amely értéke „100 üveg sör a falon” és típusa az Húr.

Többsoros kifejezések is lehetségesek. Jshell elég okos ahhoz, hogy tudja, mikor van egy kifejezés hiányos, és arra kéri a felhasználót, hogy folytassa az új sort:

jshell> int i = ...> 5; i ==> 5 | módosított i változó: int | frissítés felülírta az i változót: int

Vegye figyelembe, hogy a prompt hogyan változott behúzottá …> egy kifejezés folytatásának jelzésére.

6. Parancsok

A Jshell jó néhány meta-parancsot nyújt, amelyek nem kapcsolódnak a Java utasítások kiértékeléséhez. Mindegyikük elővágással (/) kezdődik, megkülönböztetve őket a normál művelettől. Például kiadással kérhetünk egy listát az összes elérhető parancsról /Segítség vagy / ?.

Vessünk egy pillantást néhányukra.

6.1. Behozatal

Az aktuális munkamenet során aktív összes import felsorolásához használhatjuk a / import parancs:

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

Mint láthatjuk, a héj jó néhány már hozzáadott hasznos importtal indul.

6.2. Listák

A REPL-ben végzett munka közel sem olyan egyszerű, mint egy teljes funkcionalitású IDE elérhetősége: könnyen el lehet felejteni, hogy mely változók mely értékekkel rendelkeznek, milyen módszereket határoztak meg és így tovább. A használni kívánt héj állapotának ellenőrzésére / var, /mód, /lista vagy /történelem:

jshell> / var | int i = 0 | Vonós társaság = "Baeldung" | Dátum dátuma = február 26. vasárnap 06:30:16 EST 2017 | Fájlfájl = null | String $ 6 = "100 üveg sör a falon" jshell> / method | void helloWorld () jshell> / list 1: void helloWorld () {System.out.println ("Hello world");} 2: int i = 0; 3: Vonós társaság = "Baeldung"; 4: Dátum dátum = új Dátum (); 5: fájl fájl; 6: String.format ("% d üveg sör a falon", 100) jshell> / history void helloWorld () {System.out.println ("Hello world");} int i = 0; Karaktersorozat = "Baeldung" Dátum dátum = új Dátum () String.format fájl ("% d üveg sör a falon", 100) / var / method / list / history 

A különbség /lista és /történelem az, hogy az utóbbi a kifejezéseken kívül parancsokat is mutat.

6.3. Megtakarítás

A kifejezéselőzmények mentéséhez a /mentés parancs használható:

jshell> / save repl.java 

Ez elmenti a kifejezéstörténetünket repl.java ugyanabban a könyvtárban, ahonnan a jshell parancs.

6.4. Betöltés

Egy korábban mentett fájl betöltéséhez használhatjuk a /nyisd ki parancs:

jshell> / open repl.java 

A betöltött munkamenet ekkor kiadással ellenőrizhető / var, /módszer vagy /lista.

6.5. Kilépés

Amikor végeztünk a munkával, a /kijárat parancs felmondhatja a héjat:

jshell> / exit | Viszontlátásra

Viszontlátásra jshell.

7. Következtetés

Ebben a cikkben a Java 9 REPL-t vettük szemügyre. Mivel a Java már több mint 20 éve létezik, talán kissé későn érkezett meg. Ennek azonban egy újabb értékes eszköznek kell bizonyulnia a Java eszköztárunkban.