Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

fantasma

Método toString()

Mensagens Recomendadas

fantasma

Boa Tarde,

Será que me poderiam dizer o que estou a fazer mal? O método toString() devolve-me um elemento null quando o chamo.

Estou a implementar isto em herança, portanto, o objecto da classe que eu quero passar para toString, herda propriedades de uma classe mãe. aqui vai o codigo

Classe Mãe -> Pergunta


package progtestes;
import java.io.Serializable;



public class Pergunta implements Serializable{

    private String enunciado;


   
    public String getEnunciado() {
        return enunciado;
    }

   
    public void setEnunciado(String enunciado) {
        this.enunciado = enunciado;
    }

    public Pergunta(String e){
        e = enunciado;
    }


    public String toString(){
        return enunciado;
    }
    

}

Classe filha PergTexto

package progtestes;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Vector;


public class PergTexto extends Pergunta{
    private Resposta resp;
    private Topico topico;
    private int ID=0;
    private Vector<Pergunta> perg = new Vector<Pergunta>();
    private String fich = "perguntaTexto.txt";

    public Vector<Pergunta> getVector() {
return perg;
    }



   public PergTexto(String enunciado){
       super(enunciado);
   }

   public PergTexto(String enunciado, Resposta r, Topico t){
       super(enunciado);
       r = resp;
       t = topico;

    }

    public Resposta getResp() {
        return resp;
    }

    public void setResp(Resposta resp) {
        this.resp = resp;
    }

    public Topico getTopico() {
        return topico;
    }

    public void setTopico(Topico topico) {
        this.topico = topico;
    }

public void ler() {
try {
    ObjectInputStream in = new ObjectInputStream(new FileInputStream(fich));
    perg = (Vector<Pergunta>) in.readObject();
    in.close();
} catch (ClassNotFoundException cnfe) {
} catch (FileNotFoundException fnfe) {
} catch (IOException ioe) {
}
    }

    public void gravar() {
try {
    ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(fich));
    out.writeObject(perg);
    out.close();
} catch (IOException ioe) {
}
    }

    public PergTexto inserir(String enunciado, Resposta resp,Topico tp) {
Pergunta perg1 = new PergTexto(enunciado,resp,tp);
perg.add(perg1);
return (PergTexto) perg1;
    }

    public void remove(PergTexto pergt) {
perg.remove(pergt);
    }

    public String toString(){
        return super.toString();
    }
}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
M6

Se isso acontece é porque o enunciado nunca foi definido.

Antes de fazeres .toString()  alguma vez o setEnunciado() é invocado? Já agora, o método Pergunta() parece-me que tem um bug creio que o que queres é this.enunciado = e e não o contrário...


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fantasma

Era o "bug" que mencionaste que estava a afectar, descobri isso agora ao fazer uma experiencia  :D

Troquei o e=enunciado por enunciado = e;

Thanks na mesma M6  :)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.