Return-Wert ****t nicht...

FeliXXL

Mitglied
Wie gesagt - habe ein Problem mit dem return-wert.
Hier mal etwas vereinfacht ein Teil meines Quelltextes:
System.out.println(str) gibt dabei immer "null" und nicht den Return-Wert aus.


class Url
{
public static void main( String[] args )
{
String str = null;
stream(str);
System.out.println(str);
}

public static String stream(String str)
{
InputStream is = null;
try
{
URL url = new URL( "url" );
is = url. openStream();
str = ( new Scanner(is). useDelimiter("//html//"). next() );​
}
catch ( Exception e )
{
e. printStackTrace();​
}
finally
{
if ( is != null )
try { is. close();​
}
catch ( IOException e ) { }
}
return str;
}
}
 
Zuletzt bearbeitet:
Hallo!

Du musst den Rückgabewert der Funktion stream(String str) zuweisen. Bei einem atomaren Objekttypen wie String wird keine Referenz sondern der Wert an sich übergeben.

Deine Lösung würde nur bei komplexen Datentypen funktionierten, bei denen die Referenz auf das Datenobjekt übergeben wird. Die Änderungen würden somit am Objekt selbst durchgeführt werden.

Ich hoffe ich konnte Dir damit weiterhelfen!
 
Hi

Anders gesagt: Das, was du da machst, ist überhaupt kein Returnwert.

Das müsste so ausschauen:
Java:
class Url
{
    public static void main( String[] args )
    {
        String str;
        str = stream();
        System.out.println(str);
    }

    public static String stream()
    {
        InputStream is = null;
        String str;
        try
        {
            URL url = new URL( "url" );
            is = url. openStream();
            str = ( new Scanner(is). useDelimiter("//html//"). next() );
        }
        catch ( Exception e ) 
        {
            e. printStackTrace();
        }
        finally 
        {
            if ( is != null )
            try { is. close(); } 
            catch ( IOException e ) { }
        }
        return str;
    }
}

Übrigens: Statt den Code händisch einzufärben kannst du ihn auch einfach zwischen [code=java]...[/code] schreiben. Ergebnis siehst du an meiner Codeversion.

Gruß

PS: Nachträglich Willkommen bei tutorials.de :)
 
Zurück