"Exception in thread "main" java.lang.NullPointerException "quando eu tento passar o valor para o arraylist (RESOLVIDO))

2 respostas
programaçãojavaarraylist
S
* 1. * import java.util.ArrayList;
* 2. * public class BlocoDeNotas{
* 3. *    ArrayList<String> notas;
* 4. *    
* 5. *    public void BlocoDeNotas(){
* 6. *       notas = new ArrayList<>();
* 7. *    }
* 8. *    public void addNota(String nota){
* 9. *       notas.add ( nota );
* 10. *    } 

* 11. *    public int procurarNota(String nota){
* 12. *       for(int i = 0; i < notas.size(); i++){
* 13. *          if(notas.get(i).equals(nota)){
* 14. *             return i;
* 15. *          } 
* 16. *       }   
* 17. *    return -1;  
* 18. *    } 
* 19. *    public boolean removerNota(String nota){
* 20. *       int p = procurarNota(nota);
* 21. *       if (p == -1){
* 22. *          return false;
* 23. *       }
* 24. *       notas.remove(p);
* 25. *       return true;
* 26. *    }
* 27. *    public String toString(){
* 28. *       return "[Notas: " + notas + "]";         
* 29. *    }    
* 30. * }







import javax.swing.JOptionPane;
public class AppBloco{
   public static void main (String[] args){
      BlocoDeNotas blocoDeNotas = new BlocoDeNotas();
      
      int opcao;
      String menu = "1- Insira uma nota\n2- Remova uma nota\n3- Altere uma nota\n4- Listar todas as notas\n5- Sair";
      do{
         opcao = Integer.parseInt (
            JOptionPane.showInputDialog (menu));
         
         switch (opcao){
            case 1:
               blocoDeNotas.addNota(JOptionPane.showInputDialog("Nota: "));
               break;            
            case 2:
               blocoDeNotas.removerNota(JOptionPane.showInputDialog("Qual numero da nota para remover: "));
               break;
            case 3 :
               blocoDeNotas.removerNota(JOptionPane.showInputDialog("Qual nota quer trocar?: "));
               blocoDeNotas.addNota(JOptionPane.showInputDialog("Nova nota: ")); 
               break;
            case 4:
               blocoDeNotas.toString();
               break;
            case 5:
         }
      }while(opcao != 5);   
   }
}

2 Respostas

Mike

Aqui da erro?

Eu acho que você queria inicializar o arrayList pelo construtor

Para isso, basta remover o void do código abaixo

public void BlocoDeNotas(){
       notas = new ArrayList<>();
}

Ficando assim:

public BlocoDeNotas(){
       notas = new ArrayList<>();
}

Um construtor não tem tipo de retorno e também não pode ser void

S

Obg pela ajuda era isso msm, estou começando agr a programar, vlw de vdd !!

Criado 7 de dezembro de 2018
Ultima resposta 7 de dez. de 2018
Respostas 2
Participantes 2