Java Language Editer les extraits


Exemple

L'unité de code de base utilisée par JShell est l' extrait de code ou l' entrée source . Chaque fois que vous déclarez une variable locale ou définissez une méthode ou une classe locale, vous créez un fragment dont le nom est l'identificateur de la variable / méthode / classe. À tout moment, vous pouvez modifier un extrait que vous avez créé avec la commande /edit . Par exemple, disons que j'ai créé la classe Foo avec une seule méthode, bar :

jshell> class Foo {
   ...> void bar() {
   ...> }
   ...> }

Maintenant, je veux remplir le corps de ma méthode. Plutôt que de réécrire la classe entière, je peux l’éditer:

jshell> /edit Foo

Par défaut, un éditeur de swing apparaîtra avec les fonctionnalités les plus élémentaires possibles. Cependant, vous pouvez changer l'éditeur que JShell utilise:

jshell> /set editor emacs
jshell> /set editor vi
jshell> /set editor nano
jshell> /set editor -default

Notez que si la nouvelle version de l'extrait de code contient des erreurs de syntaxe, il est possible qu'il ne soit pas enregistré. De même, un extrait de code est créé uniquement si la déclaration / définition d'origine est syntaxiquement correcte; ce qui suit ne fonctionne pas:

jshell> String st = String 3
//error omitted
jshell> /edit st
|  No such snippet: st

Toutefois, les extraits peuvent être compilés et donc modifiables malgré certaines erreurs de compilation, telles que les types incompatibles - les travaux suivants:

jshell> int i = "hello"
//error omitted
jshell> /edit i

Enfin, les extraits peuvent être supprimés à l'aide de la commande /drop :

jshell> int i = 13
jshell> /drop i
jshell> System.out.println(i)
|  Error:
|  cannot find symbol
|    symbol:   variable i
|  System.out.println(i)
|

Pour supprimer tous les extraits de code, réinitialisant ainsi l’état de la machine virtuelle Java, utilisez \reset :

jshell> int i = 2

jshell> String s = "hi"

jshell> /reset
|  Resetting state.

jshell> i
|  Error:
|  cannot find symbol
|    symbol:   variable i
|  i
|  ^

jshell> s
|  Error:
|  cannot find symbol
|    symbol:   variable s
|  s
|  ^