JShell è una shell della riga di comando per l'esecuzione di codice Java. In un articolo precedente, "Utilizzo di JShell in Java 9 in NetBeans 9.0, parte 1", abbiamo discusso dell'avvio di JShell in NetBeans 9. Abbiamo testato alcuni frammenti di codice per l'importazione di classi e la creazione e l'utilizzo di variabili in modo esplicito. In questo articolo di continuazione, discuteremo la creazione e l'utilizzo di variabili in modo implicito, l'esecuzione di confronti di stringhe e l'esecuzione di istruzioni Java. Questo articolo ha le seguenti sezioni:
- Dichiarazione e utilizzo di variabili (continua)
- Confronto di stringhe
- Utilizzo delle dichiarazioni
- Ripristino della shell Java
- Conclusione
Dichiarazione e utilizzo di variabili (continua)
Nel primo di due articoli, abbiamo discusso della dichiarazione e dell'utilizzo delle variabili in modo esplicito. Successivamente, discuteremo della dichiarazione e dell'utilizzo implicito delle variabili.
Creazione implicita di una variabile
La creazione implicita di una variabile e la sua memorizzazione in una sessione JShell è una funzionalità esclusiva di JShell poiché un file di codice sorgente Java non supporta la specifica di espressioni che sono memorizzate implicitamente come variabili. Ad esempio, aggiungi il seguente frammento di codice, che è solo il numero 1.
1
Una variabile viene creata in modo implicito, come mostrato nella Figura 1. Per impostazione predefinita, una variabile creata in modo implicito ha il nome $x , in cui x è l'identificatore della variabile. Aggiunta di 1 crea la variabile $1 , come mostrato nella Figura 1, ma l'identificatore della variabile è in una certa misura arbitrario perché la prima scelta potrebbe essere già utilizzata da un'altra variabile.
Figura 1: Creazione di una variabile implicitamente
La nuova variabile $1 può essere invocato in JShell per emettere il suo valore, come mostrato nella Figura 2.
Figura 2: Invocare la variabile implicita
Qualsiasi espressione che restituisce un valore viene archiviata in una variabile. Ad esempio, l'aggiunta di due numeri crea una variabile in modo implicito.
[5]-> 1+0 | $4 ==> 1
La variabile implicita può essere richiamata in JShell.
[6]-> $4 | $4 ==> 1
La variabile implicita può essere utilizzata in un altro frammento di codice. Ad esempio, aggiungi le due variabili implicite $1 e $4 e viene creata una terza variabile implicita.
[7]-> $1+$4 | $8 ==> 2
L'output dei comandi precedenti è mostrato nella Figura 3.
Figura 3: Utilizzo di variabili implicite
Invocare costanti di classe come Math.PI crea anche una variabile implicita, come mostrato nella Figura 4.
Figura 4: Creazione di una variabile implicita invocando una costante di classe
Una stringa literal crea anche una variabile implicita (vedi Figura 5). La variabile implicita creata può essere utilizzata in un altro frammento di codice; ad esempio, in un System.out.println dichiarazione. La variabile implicita può anche essere invocata direttamente.
Figura 5: Creazione di una variabile implicita da una stringa letterale
Le conversioni primitive di restringimento e ampliamento vengono eseguite se necessario in JShell. Ad esempio, aggiungendo un int con un numero decimale esegue una conversione di ampliamento e crea una variabile implicita con un numero decimale, come mostrato nella Figura 6.
Figura 6: Esecuzione della conversione primitiva in espansione
Stringa la concatenazione crea anche variabili implicite. Ad esempio, concatena due String letterali.
"Hello"+" "+"JShell"
Viene creata una variabile implicita. Qualsiasi stringa metodi di classe, come length() e sottostringa(int,int) , può essere invocato sulla variabile creata implicitamente, come mostrato nella Figura 7.
Figura 7: Invocare metodi su una variabile implicita
Variabili di qualsiasi tipo possono essere create in JShell. Ad esempio, crea variabili di tipo char , fluttuare e doppio oltre a int digitare.
[1]-> int a=1; | a ==> 1 [2]-> int b=5; | b ==> 5 [3]-> char c='a'; | c ==> 'a' [4]-> float f=1.0f; | f ==> 1.0 [5]-> double d=5.0d; | d ==> 5.0
Mentre il /list il comando elenca tutti i frammenti di codice, il /vars comando in JShell elenca solo le variabili.
[6]-> /vars | int a = 1 | int b = 5 | char c = 'a' | float f = 1.0 | double d = 5.0
In precedenza, abbiamo discusso un'espressione in cui viene eseguita una conversione primitiva di ampliamento implicita in JShell. Su incarico vengono effettuate anche conversioni primitive di restringimento e ampliamento. Come esempio di conversione primitiva restringente, assegna la variabile c di tipo carattere un int valore.
[6]-> c=5;| c ==> '