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.