PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : return und string?



shb
05-11-2004, 11:42
hi all ich komme mal wieder nicht weiter ;( ich habe ein kleines prog,in dem hab ich folgenden aufruf


conf_file langa = new conf_file();
String test = langa.get_string();

und dann habe ich noch folgendne code,


void get_String(){
String x = "test";
return x;
}

und nun erhalte ich bei beiden programmen fehler beim kompilieren ;(

nst.java:53: incompatible types
found : void
required: java.lang.String
String testb = langa.get_string();
das die typen unverträglich sind ist mir klar, wie kann ich das problem lösen, das ich strings als rückgabewert habe?

thx cu SHB

kinnla
05-11-2004, 12:09
Hi,

1. Groß- und Kleinschreibung beachten: Oben schreibst Du "get_string", unten "get_String". Java-Konvention wäre übrigens ohne Unterstrich "getString".

2. Die Methode muss "String" als Rückgabewert deklariert haben:


String get_String() {
String x = "test";
return x;
}
Deswegen auch die Fehlermeldung "void" ist nicht "String", wie Du ja richtig verstanden hast.

+++ kinnla

Matflasch
05-11-2004, 12:09
Du gibts einen String zwar zurueck, deklarierst die Methode aber als void,
Du musst die Methode dann mit String deklarieren

public String get_String(){
String x = "test";
return x;
}

Dann sollte es gehen.

shb
05-11-2004, 12:19
gut an die javac konvention werde ich mich dann halten, das mit der groß und kleinschreibung war ein versehen, habs nur abgetippt und nicht kopiert


public String get_string(){
String xxx = "test";
retrun "xxx";
}
und daraufhin erhalte ich beim kompilieren leider diesenfehler

shb:/home/shb/java/nst# javac conf_file.java
conf_file.java:36: not a statement
retrun "xxx";
^
conf_file.java:36: ';' expected
retrun "xxx";
^
2 errors

leider komme ich damit nicht klar ;(

thx cu SHB

dark_red
05-11-2004, 12:29
Naja... das ist aber wohl etwa trivial. Lies doch die Fehlermeldung.


retrun "xxx";

Solche Dinge solltest du sofort überprüfen. Das Problem ist ein kleiner Fehler, welcher beim schnellen Tippen mit der Tastatur passiert. Das Schlüsselwort "return" hast du als "retrun" angegeben. Damit kommt der Compilier nicht klar :)

fs111
05-11-2004, 12:52
Außerdem musst Du dann return xxx schreiben, wenn Du den String mit dem Namen xxx zurück geben willst, nicht "xxx", das wäre ein neuer String mit dem Inhalt xxx

fs111

shb
05-11-2004, 12:52
ich danke euch jetzt klappt es wie ich mir das vorstelle ;)

cuSHB