我有一个超类和两个子类。当我点击一个按钮时,这两个子类在我的用户界面上使用。我想创建一个 Estudiante 并将其放在列表中。Estudiante 里面有很多属性,所以我在子类和超类上都有 toString 方法。我已经编辑了 setListData 的属性,因此不再需要字符串。问题是,现在当我运行程序并尝试添加一个 Estudiante 并显示它时,它在子类和超类的 toString 行上给出了 StackOverflowError。如果有人可以尝试用我的代码修复它,我真的很感激。谢谢
我没有尝试太多,我只是改变了过去设置列表的方法,但现在理论上它是固定的。
public class Estudiante extends Persona{
private int numero;
private int semestre;
public Estudiante(String unNombre, int unaCedula, String unMail, int unNumero, int unSemestre) {
super(unNombre,unaCedula,unMail);
this.setNumero(unNumero);
this.setSemestre(unSemestre);
}
Estudiante 的 toString() (我没有发布 get 和 set 方法,因为我认为它们无关紧要)
@Override
public String toString(){
return super.toString() + "Numero:" + this.getNumero() + "Semestre: " + this.getSemestre();
}
```
SUPERCLASS TOSTRING (Persona)
@Override
public String toString(){
return toString() + "Nombre"+ this.getNombre() + "Cedula " + this.getCedula() + "Mail " + this.getMail();
}
public Persona(String unNombre, int unaCedula, String unMail){
this.setNombre(unNombre);
this.setCedula(unaCedula);
this.setMail(unMail);
}
这就是我在 UI 上的内容
private void BotonCrearEstudianteActionPerformed(java.awt.event.ActionEvent evt) {
Estudiante unEst=new Estudiante(NombreEstudiante.getText(), Integer.parseInt(CedulaEstudiante.getText()),MailEstudiante.getText(), Integer.parseInt(NumeroEstudiante.getText()), Integer.parseInt(SemestreEstudiante.getText()));
modelo.agregarEstudiante(unEst);
ListaEstudiantesJ.setListData(modelo.getListaEstudiantes().toArray());
StackOverflowError 在两个 toStrings 的行上,一个在子类中,一个在超类中。