Java.lang.NullPointerException

Pues estoy realizando un programa, pero cuando lo testeo me salta ese error, lo he estado revisando pero no sé porqué puede ser, te pongo el código:
public class Pregunta{
private String idPregunta;
public String getIdPregunta() {
return idPregunta;
}
public void setIdPregunta(String idPregunta) {
this.idPregunta = idPregunta;
}
private String tituloPregunta;
public String getTituloPregunta() {
return tituloPregunta;
}
public Pregunta(String idPregunta, String tituloPregunta){
this.idPregunta = idPregunta;
this.tituloPregunta = tituloPregunta;
}
public Pregunta() {
}
public String toString() {
return "Pregunta [idPregunta=" + idPregunta + ", tituloPregunta="
+ tituloPregunta + "]";
}
public void setTituloPregunta(String tituloPregunta) {
this.tituloPregunta = tituloPregunta;
}
}
public class PreguntaCerrada extends Pregunta {
public PreguntaCerrada(String idPregunta, String tituloPregunta) {
super(idPregunta, tituloPregunta);
}
private List opcionCerrada;
public PreguntaCerrada(){
opcionCerrada = new ArrayList();
}
public List getOpcionCerrada() {
return opcionCerrada;
}
public Iterator opcionCerradaIterator() {
return opcionCerrada.iterator();
}
public boolean isOpcionCerradaEmpty() {
return opcionCerrada.isEmpty();
}
public boolean containsOpcionCerrada(OpcionCerrada opcionc) {
return opcionCerrada.contains(opcionc);
}
public boolean containsAllOpcionCerrada(Collection opcionc) {
return opcionCerrada.containsAll(opcionc);
}
public int opcionCerradaSize() {
return opcionCerrada.size();
}
public OpcionCerrada[] opcionCerradaToArray() {
return opcionCerrada.toArray(new OpcionCerrada[opcionCerrada.size()]);
}
public OpcionCerrada[] opcionCerradaToArray(OpcionCerrada[] opcionCerrada) {
return this.opcionCerrada.toArray(opcionCerrada);
}
public boolean addOpcionCerrada(OpcionCerrada opcionc) {
return opcionCerrada.add(opcionc);
}
public void setOpcionCerrada(List opcionc) {
opcionCerrada = opcionc;
}
public boolean removeOpcionCerrada(OpcionCerrada opcionc) {
return opcionCerrada.remove(opcionc);
}
public void clearOpcionCerrada() {
this.opcionCerrada.clear();
}
}
public class OpcionCerrada {
private String idOpcion;
private String descripcionOpcionCerrada;
@Override
public String toString() {
return "OpcionCerrada [idOpcion=" + idOpcion
+ ", descripcionOpcionCerrada=" + descripcionOpcionCerrada
+ "]";
}
public OpcionCerrada(String idOpcion, String descripcionOpcionCerrada) {
super();
this.idOpcion = idOpcion;
this.descripcionOpcionCerrada = descripcionOpcionCerrada;
}
public String getDescripcionOpcionCerrada() {
return descripcionOpcionCerrada;
}
public void setDescripcionOpcionCerrada(String descripcionOpcionCerrada) {
this.descripcionOpcionCerrada = descripcionOpcionCerrada;
}
public String getIdOpcion() {
return idOpcion;
}
public void setIdOpcion(String idOpcion) {
this.idOpcion = idOpcion;
}
private PreguntaCerrada preguntaCerrada;
public PreguntaCerrada getPreguntaCerrada() {
return preguntaCerrada;
}
public void setPreguntaCerrada(PreguntaCerrada preguntaCerrada) {
this.preguntaCerrada = preguntaCerrada;
}
}
public class TestPrueba {
public static void main(String[] args) {
PreguntaCerrada pc1 = new PreguntaCerrada("1111-A","¿Qué te pareció el partido?");
OpcionCerrada oc11 = new OpcionCerrada("1111-O","Fatal");
OpcionCerrada oc12 = new OpcionCerrada("1112-O","Mal");
OpcionCerrada oc13 = new OpcionCerrada("1113-O","Bien");
OpcionCerrada oc14 = new OpcionCerrada("1114-O","Muy bien");
pc1.addOpcionCerrada(oc11);
pc1.addOpcionCerrada(oc12);
pc1.addOpcionCerrada(oc13);
pc1.addOpcionCerrada(oc14);
System.out.println(pc1.getOpcionCerrada());
}
}
Creo que el fallo viene del método "addOpcionCerrada" de la clase "PreguntaCerrada", de ahí es de donde yo creo que viene el fallo de java. Lang. NullPointerException, pero no sé porqué puede ser.
A ver si me pudieras ayudar.
Respuesta
1
Recién tengo tiempo de revisar tu código, por favor, disculpa la demora, las clases de la universidad recién me dejan un poquito de tiempo libre.
El problema es demasiado simple, solo hace falta tener buen ojo, la solución es copiar y pegar una linea, mira te explico
1) Al hacer esto PreguntaCerrada pc1 = new PreguntaCerrada("1111-A", "¿Qué te pareció el partido?"); tu estas llamando a este constructor public PreguntaCerrada(String idPregunta, String tituloPregunta). Lo gracioso es que estas inicializando el valor de la lista en el constructor por defecto, el que no tiene parámetros, al cual nunca lo llamas ya que estas llamando al que tiene los parámetros jejejeje
Solo hace falta mover esto opcionCerrada = new ArrayList(); del constructor sin parámetros al constructor con parámetros y listo, problema solucionado. Al final tendrías algo como esto
public PreguntaCerrada(String idPregunta, String tituloPregunta)  {
super(idPregunta, tituloPregunta);
opcionCerrada = new ArrayList();
}

1 respuesta más de otro experto

Respuesta
1
Bueno la verdad que no le veo error ahí si pudieras copiar y pegar el mensaje de error para ver en que linea de que archivo esta, seria un poquito mejor... pero así a simple vista no le encuentro que pueda ser

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas