Bom, eu ao tentar resolver um problema no meu eclipse, acabei meio que danificando ele. Com isso, eu reinstalei o eclipse, e comecei a passar meus arquivos da minha antiga workspace (manualmente por sinal).
Só que a versão do eclipse que eu baixei parece ser mais nova que a passada, e quando eu copiei um código de uma classe que eu havia criado e estava sem nenhum erro na versao passada do eclipse, agora possui esse erro:
Resource leak: ‘input’ never closed.
Aqui o código:
import java.util.Scanner;
public class Caixa {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int escolha, lado, aux,aux2;
System.out.println("MENU");
System.out.println("1 - Caixa cheia");
System.out.println("2 - Caixa vazia");
System.out.print("Escolha: ");
escolha = input.nextInt();
if (escolha == 1){
System.out.print("Tamanho dos lados: ");
lado = input.nextInt();
aux2 = lado;
while (lado > 0){
System.out.print("\n");
aux = aux2;
while (aux > 0){
System.out.print("*");
aux--;
}
lado--;
}
}
if (escolha == 2){
System.out.print("Tamanho dos lados: ");
lado = input.nextInt();
aux2 = lado;
while (lado > 0){
System.out.print("\n"); //Para mudar de linha!!!
aux = aux2; // aux2 será usado de referencia para saber tamanho do lado
if (lado != aux2 && lado != 1){ //Se não for nem o primeiro nem a ultima linha
while (aux > 0){
if (aux == aux2 || aux == 1){ // Se for a primeira ou ultima posição
System.out.print("*");
}
else {
System.out.print(" "); //Se forem outras posições
}
aux--; //Diminui um de aux
}
}
else { //Se for a primeira ou ultima linha
while (aux > 0){
System.out.print("*"); //Preencherá a linha de "*"
aux--;
}
}
lado--; //Diminui 1 de lado
}
}
}
}
Pesquisando pela net vi que se por “input.close();” resolveria. Eu pus e realmente resolveu.
Mas queria saber o que mudou da versão passada para essa nova que gerou esse erro. É uma melhoria? Quero dizer, acredito que isso sirva pra evitar desperdicio de memória ou algo assim.
Mas só preciso que me expliquem melhor o erro e as mudanças dessa versão do eclipse.