2017-12-21 3 views
-2

Fehler beim Generieren von Systemfehlern kann im Java-Programm nicht aufgelöst werden: - in den Zeilen String result = builder.toString(); und builder.append ("abc");System-Fehler-Builder kann nicht im Java-Programm gelöst werden?

package newprojectstring; 
    import java.lang.StringBuilder; 
    public class MyOwnClass { 

public static void main(String[] args) { 


    // Loop and append values. 
    for (int i = 0; i < 5; i++) { 

    MyOwnClass Builder = new MyOwnClass(); 

     builder.append("abc");   
    } 

    // Convert to string. 

    String result = builder.toString();   
    System.out.println(result); 
} 

}

+0

Haben Sie Ihren Code zu 'StringBuilder' public class ändern? Das ist nicht was ich meine. Sie sollten 'Stringbuilder builder = new Stringbuilder();' zu 'StringBuilder builder = new StringBuilder();' – Sweeper

+0

@Sweeper ändern, wenn ich Stringbuilder ändere builder = new Stringbuilder(); zum String Builder Builder = new StringBuilder(); System löst Fehler in String result = builder.toString(); Line Builder kann nicht aufgelöst werden –

+0

'StringBuilder-Builder = new StringBuilder();' sollte außerhalb der Schleife sein, da es nach außen nicht sichtbar ist. – Satya

Antwort

0

Vor allem nie Ihre eigenen Klassen mit Namen ähnlich wie die Namen der Klassen von den Standard-Java Bibliotheken nennen. Wenn Sie dies tun, werden Sie immer Tonnen von Fehlern bekommen und jeder, der Ihren Code liest, wird Sie verfluchen.

Als nächstes wollen Sie den Standard StringBuilder aus dem java.lang Paket verwenden, aber Sie tatsächlich versuchen, eine Instanz Ihrer eigenen Stringbuilder Klasse zu verwenden, die nicht append() Methode enthält. StringBuilder und Stringbuilder sind verschiedene Dinge, aus der Sicht der Java. Wenn Sie Ihre Klasse nicht Stringbuilder nennen würden, würden Sie Ihren Fehler sehen, während Sie ihn in Ihre IDE geschrieben haben.

Ihr Code wie folgt umschreiben:

public class MyOwnClass {  // *** Not 'Stringbuilder'!!! 

    public static void main(String[] args) { 
    // Create a new StringBuilder 
    StringBuilder builder = new StringBuilder(); // *** Not 'Stringbuilder' !!! 

    // Loop and append values. 
    for (int i = 0; i < 5; i++) { // Use spaces properly  
     builder.append("abc");   
    } 

    // Convert to string. 
    String result = builder.toString();   
    System.out.println(result); 
    } 

} 
0

Wenn Sie schreiben builder.append("abc");, java für die class durch Bezugnahme dargestellt aussehen wird genannt builder die in diesem Fall ist Ihre benutzerdefinierte Klasse Stringbuilder. Dann sucht es nach einer Methode append mit einem String-Argument, die es nicht finden wird, weil Sie eine Methode wie diese nicht definiert haben.

Jetzt gibt es eine vordefinierte StringBuilder, die eine Methode namens append hat. Ich denke, du bist damit verwirrt. Wenn Sie die append-Methode von StringBuilder aufrufen möchten, müssen Sie einen Verweis von StringBuilder erstellen.

Stringbuilder builder = new Stringbuilder(); 
builder.append("abc"); 
Verwandte Themen