logo

Loop Read-Eval-Print (REPL) em Java

O Loop de leitura-avaliação-impressão ou REPL é uma interface shell. Esta interface lê e avalia cada linha de entrada e depois imprime o resultado. O Loop de leitura-avaliação-impressão nos ajuda a interagir com o tempo de execução do nosso aplicativo presente em um estado específico. Os comandos são lidos e avaliados pelo REPL e imprima o resultado. Após imprimir o resultado, o REPL volta ao início para ler, avaliar e imprimir nossa próxima entrada.

Loop Read-Eval-Print (REPL) em Java

Usando REPL, podemos escrever e testar facilmente nosso código Java sem compilá-lo e ver a saída diretamente no console.

Java ainda não tem REPL?

Definitivamente, um REPL deve estar em uma linguagem estabelecida como Java . Porém, nem todas as linguagens possuem o REPL, e Java é uma delas. Os desenvolvedores Java são os que mais exigem isso. Java teve algo parecido com REPL por um tempo como Java Beanshell. Mas o projeto não era um REPL completo com outras linguagens. Para isso, em 2016, foi lançado o Java 9, que entrega um ambiente REPL completo.

Por que o REPL é tão útil?

Ao usar o REPL, não precisamos compilar ou testar nosso código Java usando o comando javac. Depois de usar o REPL,

  1. Não há necessidade de um editor para escrever o programa Java.
  2. Não há necessidade de salvar o programa Java.
  3. Não há necessidade de compilar o programa Java.
  4. Não há necessidade de fazer edição se ocorrer algum erro em tempo de compilação ou tempo de execução.
  5. Não há necessidade de repetir o processo.
Loop Read-Eval-Print (REPL) em Java

Podemos avaliar métodos, classes e instruções sem criar uma classe. O programa 'Hello World' também pode ser escrito sem a criação de uma classe.

execvp

Requisitos para usar REPL

Existe apenas um requisito para usar REPL , ou seja, deveríamos ter Java 9 ou versão superior em nosso sistema. Se o Java 9 estiver instalado em nosso sistema, estamos prontos para usar REPL . Para verificar a atual versão de Java em seu sistema, abra o prompt de comando e digite o seguinte comando:

 java -version 

Loop Read-Eval-Print (REPL) em Java

Usando REPL

Abaixo estão alguns exemplos de REPL nos quais avaliamos as expressões matemáticas, calculamos a série de Fibonacci, criamos uma classe dinâmica, conhecemos o histórico e modificamos a classe.

arraylist em java sort

Exemplo 1: Avaliando Expressões Matemáticas

 jshell> double a = 10; jshell> a= Math.pow(a, 2); jshell> a+20 jshell> /vars jshell> double data = Math.pow(8.3, 5); 

Descrição:

Na primeira linha, criamos uma variável 'a' do tipo double e definimos seu valor inicial como 10. Depois disso, encontramos o quadrado da variável 'a' e o armazenamos na mesma variável. Depois disso, simplesmente adicionamos 20 à variável ‘a’. O Jshell colocará o resultado em uma variável temporária '' . A seguir, executamos o '/cujo' comando, que nos mostra todas as variáveis ​​​​criadas. Por fim, criamos uma variável 'dados' do tipo double e armazene os 5ºpotência do dígito 8.3.

Saída:

substring string java
Loop Read-Eval-Print (REPL) em Java

Exemplo 2: Calculando a Série Fibonacci

 jshell> int fibo(int no) (no == 1)) ...> return no;e all possible completions; total possible completions ...> else ...> return fibo(no-1)+fibo(no-2); ...> jshell> /methods jshell> fibo(11) jshell> fibo(12) jshell> int[] arr = { 1,2,3,4,5,6}; jshell> for(int i: arr){ ...> System.out.println(fibo(i)); ...> } 

Descrição:

Nas primeiras seis linhas de código, criamos um método para a série de Fibonacci. Depois disso, usamos o /métodos comando do Jshell, que nos mostra todos os métodos disponíveis. Nas próximas duas linhas, testamos o fibra() método passando valores inteiros. Criamos uma matriz chegar para determinar quantos termos queremos obter da série de Fibonacci. A seguir, iteramos cada valor de arr usando for cada loop. Passamos cada valor de arr para o método fibo() e imprimimos seu valor de retorno.

Saída:

Loop Read-Eval-Print (REPL) em Java

Exemplo 3: REPL para reutilização

 jshell> int fibo(int no){ ...> return 2; ...> } jshell> for(int i: arr){ ...> System.out.println(fibo(i)); ...> } 

Descrição:

No código acima, criamos um método fibo() com o mesmo tipo de retorno e argumento que criamos antes. Neste momento, o Jshell substitui o anterior 'fibo()' método com o atual. A seguir, passamos cada valor de arr para a função para garantir se nosso método fibo() é substituído ou não.

Saída:

Loop Read-Eval-Print (REPL) em Java

Exemplo 4: Definindo a classe

diferença entre jantar e ceia
 jshell> class Student{ ...> public String Name; ...> public int age; ...> public String course; ...> public int semester; ...> public Student(String Name, int age, String course, int semester){ ...> this.Name=Name; ...> this.age=age; ...> this.course = course; ...> this.semester=semester; ...> } ...> public void showData(){ ...> System.out.println('Name= '+ Name); ...> System.out.println('Age= '+ age); ...> System.out.println('Course= '+ course); ...> System.out.println('Semester= '+semester); ...> } ...> } 

Descrição:

No código acima, criamos a classe 'Estudante' , que possuem Nome, idade, curso e semestre. Criamos um construtor no qual definimos os valores para essas variáveis. Após o construtor, criamos um método que mostra o valor de todas as variáveis ​​para cada instância da classe.

Saída:

Loop Read-Eval-Print (REPL) em Java

Exemplo 5: Criando uma instância da classe

 jshell> Student s1 = new Student( 'Shubham Rastogi', 18, 'MCA', 4); jshell> Student s2 = new Student( 'Kartik Rastogi', 23, 'MCA', 3); jshell> /vars jshell> s1.showData(); jshell> s2.showData(); 

Descrição:

inkscape x gimp

No código acima, criamos duas instâncias da classe e passamos o valor para o construtor para todas as variáveis ​​da classe. A seguir, executamos o comando Jshell para verificar se as variáveis ​​s1 e s2 foram criadas ou não. Por fim, chamamos o método showData() para exibir os dados de cada instância.

Saída:

Loop Read-Eval-Print (REPL) em Java