Boa tarde, minha dúvida é a seguinte:
Utilizo a IDE eclipse. Estou fazendo exercícios de java só que esta ocorrendo um aviso neste código abaixo.
import java.util.Scanner;
public class aula08
{
public static void main(String[] args)
{
System.out.println("Infomme a idade do seu cachorro: ");
Scanner in = new Scanner(System.in);
int idadeCachorro = in.nextInt();
idadeCachorro = idadeCachorro*7;
System.out.println("Idade do cachorro: " + idadeCachorro + " Anos.");
}
}
Por que o AVISO( ! ) na linha onde esta escrito: Scanner in = new Scanner(System.in);?? Se clico no AVISO ( ! ) ele me mostra a opção para alterar o código, exemplo colocar uma private static Scanner in;, e alterar a linha Scanner in = new Scanner(System.in); para in = new Scanner(System.in);
Igual esse exemplo:
import java.util.Scanner;
public class aula08
{
private static Scanner in;
public static void main(String[] args)
{
System.out.println("Infomme a idade do seu cachorro: ");
in = new Scanner(System.in);
int idadeCachorro = in.nextInt();
idadeCachorro = idadeCachorro*7;
System.out.println("Idade do cachorro: " + idadeCachorro + " Anos.");
}
}
Assim o aviso some, mais gostaria e saber o porque disso !!
O problema é que você não fecha o objeto “in” que você criou depois que não utiliza mais, ao final do código utilize o método .close() e o aviso sumirá e vai evitar a perda de recursos. in.close();
Então, @Rafael_Santos_Teixei, eu também ia responder isso, mas ainda resta a dúvida: Por que quando ele transforma a variável local in em um membro estático o aviso também some sem a necessidade de chamar o close?
Certo, então tenho que tornar a classe estática como propõem o IDE ou finalizar o objeto escrevendo in.close(). Ta meio vago ainda mais já deu pra ter uma leve noção. @Rafael_Santos_Teixei você comentou que: vai evitar a perda de recursos. Quais recursos?
@TEC.ER sim é o que eu estou fazendo, dando o click no aviso, só que quando dou o click ele altera ela para static e o aviso some como aparece nos códigos postados acima. Só que a duvida é o por que dele fazer isso?