Erro ao ler objetos de um arraylist

olá… estou com um probleminha ele esta descrito nos comentários…
não consigo ler um objeto salvo em um arrayList…

 public void actionPerformed(ActionEvent ev){
 System.out.println("estou ouvindo o button");

 String lixo =question.getText(); // esta linha funciona
 String lixo2 = answer.getText(); // esta linha funciona
 System.out.println("vou imprimir lixo" + lixo); // debug esta linha funciona
  QuizCard card = new QuizCard(question.getText(),answer.getText());
  cardList.add(card);
  int thesize =cardList.size(); // o tamanho é incrementado
  System.out.println("tamanho do Objeto cardList : " + thesize); // debug
 
  //for(QuizCard f : cardList){
  for(int n = 0; n <cardList.size(); n++){
  QuizCard f = cardList.get(n);
  String p1 = f.Pergunta;
  String r2 =f.Resposta;
 System.out.println("Pergunta   " + p1 +" Resposta " + r2); // aqui esta o problema
 // não consigo imprimir  p1 e r2 ,  eles aparecem como null... 

acho que o problema deve estar aqui… porque eu acho isso ? simples eu fiz esta classe… o resto é do livro use a cabeça java he…he…



  public class QuizCard{

  public String Pergunta;
  public String Resposta;
  
  public QuizCard(String Pergunta,String Resposta){} // construtor
  
  public String getQuestion(){
  Pergunta = question.getText();
  System.out.println("p = " + Pergunta); // debug
  return(Pergunta);
  }
  public String getAnswer(){
  Resposta = answer.getText();
  System.out.println("r = " + Resposta);
  return (Resposta);
}
}
}

sds

j.silvestrte

Qual erro que está ocorrendo?

Olá…

o seguinte na linha 17 ele deveria imprimir
Pergunta + string p1 resposta + string r2
mas ele imprime p1 e r2 como null
esta é a saida :

"Pergunta null Resposta null "

sds

j.silvestre

ja vi o seu erro, é que você não atribuiu o valor para as variaveis.


  
  public String Pergunta;  //mude para private
  public String Resposta;  //mude para private
    
  public QuizCard(String Pergunta,String Resposta){
      this.Pergunta = Pergunta;
      this.Resposta = Resposta;
  } // construtor  
  

estranho… estou pensando um pouco aqui, mas ja vao algumas dicas…
coloque os argumentos da sua classe QuizCard como privates, mesmo porque elas ja tem seus devidos getters.
sempre itere sobre uma collection usando um enhanced for ou um iterator, e nunca usando;

 for(int n = 0; n < cardList.size(); n++) 

e nas linhas 15 e 16, retorne o valor de pergunta e resposta, utilizando os getters, e nao o atributo em si;

Valews… Joede

foi isso mesmo.

sds

j.silvestre

aajjbb

valeu pelas dicas.

sds

j.silvestre

ah, so agora percebi que seu construtor nao atribuia os valores :slight_smile: