JShell est un shell de ligne de commande pour exécuter du code Java. Dans un article précédent, "Utilisation de JShell dans Java 9 dans NetBeans 9.0, Partie 1", nous avons discuté du démarrage de JShell dans NetBeans 9. Nous avons testé des extraits de code pour importer des classes et créer et utiliser explicitement des variables. Dans cet article de continuation, nous discuterons de la création et de l'utilisation implicites de variables, de l'exécution de comparaisons de chaînes et de l'exécution d'instructions Java. Cet article comporte les sections suivantes :
- Déclarer et utiliser des variables (suite)
- Comparaison de chaînes
- Utiliser des instructions
- Réinitialiser le shell Java
- Conclusion
Déclarer et utiliser des variables (suite)
Dans le premier des deux articles, nous avons discuté de la déclaration et de l'utilisation explicite des variables. Ensuite, nous discuterons de la déclaration et de l'utilisation implicites des variables.
Création implicite d'une variable
La création implicite d'une variable et son stockage dans une session JShell est une fonctionnalité unique à JShell, car un fichier de code source Java ne prend pas en charge la spécification d'expressions implicitement stockées en tant que variables. À titre d'exemple, ajoutez l'extrait de code suivant, qui est juste le numéro 1.
1
Une variable est créée implicitement, comme illustré à la figure 1. Par défaut, une variable créée implicitement porte le nom $x , dans lequel x est l'identifiant de la variable. Ajout de 1 crée la variable $1 , comme le montre la figure 1, mais l'identifiant de la variable est arbitraire dans une certaine mesure car le premier choix peut déjà être utilisé par une autre variable.
Figure 1 : Créer une variable implicitement
La nouvelle variable $1 peut être invoqué dans JShell pour générer sa valeur, comme illustré à la figure 2.
Figure 2 : Invoquer une variable implicite
Toute expression qui produit une valeur est stockée dans une variable. Par exemple, l'addition de deux nombres crée implicitement une variable.
[5]-> 1+0 | $4 ==> 1
La variable implicite peut être invoquée dans JShell.
[6]-> $4 | $4 ==> 1
La variable implicite peut être utilisée dans un autre extrait de code. Par exemple, ajoutez les deux variables implicites $1 et 4 $ , et une troisième variable implicite est créée.
[7]-> $1+$4 | $8 ==> 2
La sortie des commandes précédentes est illustrée à la figure 3.
Figure 3 : Utilisation de variables implicites
Invoquer des constantes de classe telles que Math.PI crée également une variable implicite, comme illustré à la figure 4.
Figure 4 : Création d'une variable implicite en invoquant une constante de classe
Une chaîne literal crée également une variable implicite (voir Figure 5). La variable implicite créée peut être utilisée dans un autre extrait de code ; par exemple, dans un System.out.println déclaration. La variable implicite peut également être invoquée directement.
Figure 5 : Création d'une variable implicite à partir d'un littéral de chaîne
Des conversions primitives de rétrécissement et d'élargissement sont effectuées si nécessaire dans JShell. Par exemple, ajouter un int avec un nombre décimal effectue une conversion étendue et crée une variable implicite avec un nombre décimal, comme illustré à la Figure 6.
Figure 6 : Exécution d'une conversion primitive élargie
Chaîne la concaténation crée également des variables implicites. Par exemple, concaténez deux String littéraux.
"Hello"+" "+"JShell"
Une variable implicite est créée. L'une des chaîne méthodes de classe, telles que length() et sous-chaîne(int,int) , peut être invoqué sur la variable créée implicitement, comme illustré à la figure 7.
Figure 7 : Invoquer des méthodes sur une variable implicite
Des variables de tout type peuvent être créées dans JShell. Par exemple, créez des variables de type char , flottant , et doubler en plus du int saisir.
[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
Alors que /list La commande répertorie tous les extraits de code, le /vars La commande dans JShell répertorie uniquement les variables.
[6]-> /vars | int a = 1 | int b = 5 | char c = 'a' | float f = 1.0 | double d = 5.0
Plus tôt, nous avions discuté d'une expression dans laquelle une conversion primitive d'élargissement implicite est effectuée dans JShell. Des conversions primitives de rétrécissement et d'élargissement sont également effectuées lors de l'affectation. Comme exemple d'une conversion primitive restrictive, affectez la variable c de type char un int valeur.
[6]->c=5;| c ==> '