Methoden Cannot be resolved to a variable

  • Themenstarter Themenstarter MikeTheT
  • Beginndatum Beginndatum
M

MikeTheT

Gast
Hallo, bin neu hier. Hab schon google richtig bemüht, alle Links verstecken sich schon hinter der lilanen, du hast mich schon geklickt Farbe. Aber ich glaub mein Problem ist etwas spezieller:

Java:
import java.net.*;
import java.io.*;



public class Test {
	public static String getSource(String url){
		try
		{
		URL url1 = new URL(url);
		InputStreamReader in = new InputStreamReader(url1.openStream());
		BufferedReader br = new BufferedReader(in);
		String sourcecode = "";
		String line;
		while((line = br.readLine()) != null){
			sourcecode = sourcecode + line;
			
		}
		
		br.close();
		}
		catch(IOException e)
		{
		System.out.println("Fehler :" + e);
		}
		return sourcecode;//Hier tritt die oben genannte Fehlermeldung auf
		}
	
	public static void main(String[] args) {
		getSource("TestSeite");	
	}
}
Ich will hier einfach nur in einer Methode den Sourcecode einer Seite Auslesen in den String speichern und selbigen dann zurückgeben. In der main rufe ich die Methode auf.
Bitte um Hilfe und Erklärung, warum ich sourcecode nicht zurückgeben kann.
 
Alles kalr funktioniert perfekt. Ich dachte mir er wäre in der ganzen Methode gültig, unabhängig ob im Try-Block oder sonst wo deklariert. Oh Mann ich hab bestimmt ne Stunde nach der Lösung gesucht..

Danke dir 😉

das du so lange nach ner lösung gesucht hast kann ich dir leider irgendwie nicht glauben ... weil dieser anfänger-fehler kommt hier regelmäßig mit genau den gleichen aussagen ...

hättest du also wirklich so intensiv gesucht hättest du einen ähnlichen thread gefunden in dem halt erklärt ist : variablen sind nur im selben oder untergeordneten scopes sichtbar ...
 
Moin,

Java:
// .....
String sourcecode = "";
String line;
while( (line = br.readLine()) != null )
{
    sourcecode = sourcecode + line; // !!!!!
}
// .....
BTW: sowas ist eine ganz schlechte Idee, da Strings immutable sind und somit bei jeder Konkatenation neue String-Instanzen generiert werden!!
Nimm lieber einen "StringBuilder" 🙂
(Java Blog Buch : 03.08 StringBuffer und StringBuilder)
Java:
// .....
StringBuilder sbSourceCode = new StringBuilder( "" );
String line;
while( (line = br.readLine()) != null )
{
    sbSourceCode.append( line ); // !!!!!
}
// .....
return sbSourceCode.toString();

Gruß
Klaus
 
wobei hier sogar eine List<String> vielleicht sogar noch sinnvoller wäre als den ganzen source in einen string zu drücken der dann wieder zerlegt und geparset werden muss
 

Neue Themen


Zurück
Oben