Wątek przeniesiony 2014-10-26 07:29 z Java przez bogdans.

String Stringowi Nie Równy

0

Witam. Mam dość dziwny problem, porównując dwa identyczne stringi daje mi wynik negatywny
user image

1

Spróbuj metodą

equals
0

Czy w twoim screenshotach widzisz podkreslone na brazowo (czy to jest brazowy?) ==? Jesli tak, to wiedz ze jest to pewnie warning/wskazowka ktorej przeczytanie na pewno by pozwolilo ci samemu naprawic blad...

0

poczytaj czym sie różni "==" od equals. == sprawdza czy referencja do obiektów jest ta sama, a equals sprawdza Ci wartość obiektu

http://perso.ensta-paristech.fr/~diam/java/online/notes-java/data/expressions/22compareobjects.html

0

Sorki ale nie wiedziałem o tym. Niedawno przesiadłem się z c# na jave,a tam nie robiło to zbytniej różnicy;
user image

Dzięki za wyjasnienie:D

0

Akurat powyższy kod przepisany na Javę dałby taki sam wynik, a to za sprawą http://en.wikipedia.org/wiki/Java_class_file#The_constant_pool

W C# operator równości jest przeciążany, natomiast w Javie oznacza zawsze to samo: porównanie wartości referencji albo porównanie zawartości typu podstawowego (czyli takiego co nie dziedziczy po Object). Wszystko co dziedziczy po Object (lub jest nim) ma metodę equals, więc jej powinieneś używać. Domyślna implementacja equals porównuje referencje, ale String ma ją już przeciążoną i porównuje zawartość.

1 użytkowników online, w tym zalogowanych: 0, gości: 1