Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Return mit Int und null

  1. #1
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    825

    Return mit Int und null

    Hallo Leute,

    ich habe da so eine Funktion, die im Erfolgsfall ein Integer abliefern soll, sonst null.
    Irgendwie bekomme ich das nicht hin (bin javascript-versaut).

    Mein Ansatz:
    Code:
     public int get_element(int i)
     { 
       if (liste[0]>0) return liste[i]; else return null;
     }
    Hier kratzt sich der Compiler am erwarteten int-Returnwert.

    Ansatz 2:
    Code:
    public Integer get_element(int i) 
      { if (liste[0]>0) return (Integer)(liste[i]);
        else return null;
      }
    Da passt ihm die Umwandlung Integer<-->int nicht.

    so long,
    BlueJay
    Geändert von BlueJay (26-07-2009 um 11:07 Uhr)
    Eigentlich ganz einfach, wenn man's weiss!

  2. #2
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Wieso nicht einfach so?

    return null -> return 0

    MfG Bischi

    PS: Wobei - eigentlich sollte das gehen - soweit ich mich errinnere - mit '0' hast du einfach den Vorteil, dass du etwas weniger abfangen musst...

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  3. #3
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    825
    ... weil 0 als Wert vorkommt?

    Gefressen hat der Compiler letztendlich dies:

    Code:
    public Integer get_element(int i) 
      { if (liste[0]>0) return (new Integer(liste[i]));
        else return null;
      }
    Geändert von BlueJay (26-07-2009 um 13:03 Uhr)
    Eigentlich ganz einfach, wenn man's weiss!

  4. #4
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Kenn mich mit Java nicht so aus.
    Daher vielleicht - Entweder Überladen oder, du bekommst das nur mit einem Zeiger auf ein Objekt hin das Multible Datenformen zurückgeben kann.
    Code:
    public MeinDatenHandler get_element(int i)
    { 
       MeinDatenHandler h;
       //    ...
       return h;
    }
    http://java.sun.com/docs/books/tutor...turnvalue.html
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  5. #5
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    825
    Zitat Zitat von undefined Beitrag anzeigen
    Kenn mich mit Java nicht so aus.
    Daher vielleicht - Entweder Überladen oder, du bekommst das nur mit einem Zeiger auf ein Objekt hin das Multible Datenformen zurückgeben kann.
    Fein, ich mich auch nicht so...
    Aber gefressen habe ich mittlerweile, dass man null nur bei Objekten anbieten kann, int ist ein primitiver Datentyp.
    Verwirrt hat mich, dass meine Allerwelts-Umwandlungsformel (Integer)(irgendein_Ausdruck) nicht funktioniert hat.
    Eigentlich ganz einfach, wenn man's weiss!

  6. #6
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Zitat Zitat von BlueJay Beitrag anzeigen
    Verwirrt hat mich, dass meine Allerwelts-Umwandlungsformel (Integer)(irgendein_Ausdruck) nicht funktioniert hat.
    Das ist keine Umwandlung, sondern ein Cast. Ein Cast reinterpretiert mehr oder weniger das auf der rechten Seite als das was in der Klammer steht.
    Und einen Primitive Type kann man nicht als Referenz auf einen Class Type reinterpretieren.
    (Bei direktem Zugriff auf einen Pointer wie in C/C++ kann man das schon, aber jeder der das macht gehört ordentlich, um, "motiviert" das nicht mehr zu tun)

    Zum eigentlichen Problem: wäre es nicht besser, erst gar keine ungültigen Werte in das Array reinzulassen?
    Bzw, falls das einen Fehler indiziert, vielleicht eine Exception werfen

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  7. #7
    Registrierter Benutzer Avatar von lokicall
    Registriert seit
    17.12.2005
    Beiträge
    53
    Vielleicht verstehe ich dich falsch oder es liegt einfach nur an der Uhrzeit. Wieso denn nicht so?

    Code:
    public Integer get_element(int i) { 
    if (liste[0]>0) return new Integer(liste[i]);
        else return null;
      }

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •