Java: bei equals erster String ist null :/

  1. lol

    lol Thread Starter MacUser Mitglied

    Mitglied seit:
    18.01.2006
    Beiträge:
    1.556
    Zustimmungen:
    63
    firstString.equals(secondString)
    vergleicht ja auf korrekte Art und Weise, im Gegensatz zu == zwei Strings miteinander.
    Nur was tue ich, wenn der erste String = null ist? Dann bekomme ich eine Exception. Wie umgehe ich das?
    - firstString und secondString zu tauschen macht keinen Sinn, da auch secondString null sein kann.
    Danke für euren Tipp
     
    lol, 12.10.2006
    #1
  2. gishmo

    gishmo MacUser Mitglied

    Mitglied seit:
    16.03.2004
    Beiträge:
    813
    Zustimmungen:
    23
    Einfach zuvor Abfragen: firstString != null ....

    Dann klappts.
     
    gishmo, 12.10.2006
    #2
  3. Kathse

    Kathse MacUser Mitglied

    Mitglied seit:
    15.03.2004
    Beiträge:
    166
    Zustimmungen:
    0
    Wenn sie beide gleichzeitig null sein können, würd ich das vorher auch abfragen, weil dann sind sie ja wieder gleich.

    Code:
    if (firstString != null) {
      if (secondString != null) {
        firstString.equals(secondString)
      }
      else
        return true;
    else
      return false;
    
    oder sowas in der Art (ohne Eclipse-Syntaxprüfung immer schwierig ;))

    Gruß,
    K
     
    Kathse, 12.10.2006
    #3
  4. unclefu

    unclefu MacUser Mitglied

    Mitglied seit:
    01.02.2005
    Beiträge:
    240
    Zustimmungen:
    0
    du könnstet das auch mit einer try catch umgebung machen.

    try
    {
    Vergleich
    }
    catch(e: NullPointerExeption)
    {
    }

    die Syntax ist ziemlich sicher falsch so, aber die Semantik ist richtig ;)
    also einfach try catch suchen und kein Problem.
     
    unclefu, 12.10.2006
    #4
  5. oglimmer

    oglimmer MacUser Mitglied

    Mitglied seit:
    16.11.2004
    Beiträge:
    1.150
    Zustimmungen:
    91
    also das mit den try-catch geht natürlich, ist aber definitiv nicht zu empfehlen. das macht die sache sehr unübersichtlich, mißbraucht das exceptions-konzept und verschleihert eine echte NPE in der equals-implementierung.

    meine Standardimplementierung ist die:

    return firstString != null ? firstString.equals(secondString) : false;
     
    oglimmer, 14.10.2006
    #5
  6. oneOeight

    oneOeight MacUser Mitglied

    Mitglied seit:
    23.11.2004
    Beiträge:
    48.160
    Zustimmungen:
    3.885
    wie wäre es die strings entsprechend zu initialisieren bei der definition, damit die einfach nicht null sind ;)
     
    oneOeight, 14.10.2006
    #6
  7. oglimmer

    oglimmer MacUser Mitglied

    Mitglied seit:
    16.11.2004
    Beiträge:
    1.150
    Zustimmungen:
    91
    das ist natürlich die königslösung, aber wenn man die strings aus einer API bekommt hat man da wenig einfluss drauf.
     
    oglimmer, 14.10.2006
    #7
Die Seite wird geladen...
Ähnliche Themen - Java bei equals
  1. revax
    Antworten:
    7
    Aufrufe:
    795
    trixi1979
    15.06.2012
  2. devrandom
    Antworten:
    5
    Aufrufe:
    1.718
    devrandom
    11.02.2010
  3. derCalle
    Antworten:
    14
    Aufrufe:
    1.503
    derCalle
    12.03.2009
  4. TenFan
    Antworten:
    1
    Aufrufe:
    548
    wegus
    04.01.2007
  5. kabler1
    Antworten:
    25
    Aufrufe:
    1.673
    wegus
    03.01.2007