tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von sheel
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
231
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    FeliXXL FeliXXL ist offline Mitglied Bronze
    Registriert seit
    Jul 2011
    Beiträge
    29
    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;
    }
    }
    Geändert von FeliXXL (23.07.11 um 12:17 Uhr)
     

  2. #2
    mjkraus mjkraus ist offline Mitglied Bronze
    Registriert seit
    Apr 2007
    Beiträge
    29
    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!
     

  3. #3
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.502
    Hi

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

    Das müsste so ausschauen:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    
    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 [java]...[/java] schreiben. Ergebnis siehst du an meiner Codeversion.

    Gruß

    PS: Nachträglich Willkommen bei tutorials.de
    FeliXXL bedankt sich. 

  4. #4
    FeliXXL FeliXXL ist offline Mitglied Bronze
    Registriert seit
    Jul 2011
    Beiträge
    29
    Danke für die schnelle Hilfe... Super Truppe
    Bleibe dem Forum auf jeden Fall treu. THX
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 05.02.11, 21:23
  2. Mit Return wert zurückgeben
    Von Kai-Behncke im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 22.04.09, 18:08
  3. return wert an batch übergeben
    Von naeko im Forum Sonstige Sprachen
    Antworten: 0
    Letzter Beitrag: 30.06.08, 10:06
  4. Subreport return Wert an Master report (iReport)
    Von Thomas1980m im Forum Java
    Antworten: 0
    Letzter Beitrag: 08.03.07, 08:17
  5. Formular bei Return nicht absenden
    Von TimExtreme im Forum PHP
    Antworten: 4
    Letzter Beitrag: 11.07.05, 18:11

Stichworte