2016-10-24 9 views
0

Ich bin ein Anfänger in Java und ich habe versucht, einen Schwanz zu implementieren, und ich habe alle anderen Methoden gemacht, aber bei der Methode toString(), wird das Programm nicht funktionieren. Hier ist mein Versuch:Implementieren Schwanz Klasse

class Tail { 
    int n; 
    Node prim; 
    Node last; 

    class Node { 
     Node next; 
     int info; 
    } 

    Tail() { 
     prim = null; 
     last = null; 
     n = 0; 
    } 

    public String toString() { 
     StringBuilder s = new StringBuilder(); 
     for (int info : this) 
      s.append(info + " "); 
     return s.toString(); 
    //return this.info.toString(); 
    } 

Es gibt einen Fehler, wenn ich versuche this.info.toString zurückzukehren(). Ich würde dieses Problem zu lösen, dank

+0

‚info‘ eine primitive int ist. Sie können 'toString()' nicht für primitive Typen aufrufen – usha

+0

Tail implementiert 'Iterable' nicht und ist kein Array, daher können Sie es nicht in einer erweiterten for-Schleife verwenden. –

+0

Woher kommen die Info-Objekte? Wenn Sie die Konstruktion "for (int info: this)" verwenden möchten, muss Tail Iterable implementieren – dantiston

Antwort

1

Code unten ist falsch irgendwelche Ratschläge oder Lösung zu schätzen wissen:

für (int info: diese)
s.append (info + "„);

'this' bezieht sich auf die aktuelle Instanz des Tail - die alle seiner Eigenschaften (n, prim, und letzte) & Verfahren. Wenn Sie toString() mit den drei Eigenschaften beziehen sich auf diese Antwort, wie überschrieben werden soll, schreiben Sie Ihre for-Schleife:

How to get the fields in an Object via reflection?

Verwandte Themen