Cuando imprimo una instancia de mi clase, se hace referencia a la instancia como "nula" porque devuelvo "nula", ¿cómo puedo formatear la clase toString para que devuelva lo que realmente escribí en esta función?
public String toString() { System.out.print(this.coefficient); for(int i=0; i<26;i++) { if(degrees[i] == 1) { System.out.print(variables[i]); } if(degrees[i]>1) { System.out.print(variables[i] + "^" + degrees[i]); } } System.out.println('\n'); return null; } Por ejemplo, tiene que devolver "m1 = 13a^2b^3" (es un polinomio) pero en su lugar devuelve "13a^2b^3 m1 = null"
En lugar de imprimir directamente cada componente del String , concatenelos usando un StringBuilder :
public String toString() { StringBuilder s = new StringBuilder(); s.append(this.coefficient); for (int i = 0; i < 26; i++) { if (degrees[i] == 1) { s.append(variables[i]); } else if (degrees[i] > 1) { s.append(variables[i]).append('^').append(degrees[i]); } } return s.toString(); }Utilice el generador de cadenas. Dondequiera que esté usando System.out.println
En vez de eso
StringBuilder temp=new StringBuilder(); temp.append();// Add here the content what you are printing with Sysout // at the end return temp.toString();