Podczas porannej sesji przeglądania gorących w mirko natrafiłem na [wpis](http://www.wykop.pl/wpis/13143545/#!$%@?-nie-wierze-co-debuguje-if-this-getid-that-ge/) @LeftShift (i komentarze doń). W pierwszej chwili mocno zastanawiałem się - co tu może nie grać? Kod wygląda jak standardowy kod dla equals() wygenerowany przez IDE, więc takie kwiatki to standard.
Ale! Oprócz zabawnego zwracania wartości boolean, lub porównywania obiektów za pomocą == moze tam sie kryć takze coś ciekawego jesli ID jest typu java.lang.Integer (lub innym autoboxowanym typem). Spójrz na te 3 przykłady:

Integer a = 0;
Integer b = 0;
System.out.println(a
  • Odpowiedz
@Grizwold: a skąd te informacje o load balancerach, DNSach itp? Najważniejszy błąd jaki tam popełniono, z tego co pamiętam, to, że nikt nie przewidział, że dojdzie do takiej sytuacji, że np. będzie kilka stron na jednym serwerze WWW. Dlatego np.:

URL url1 = new URL("http://wykop.pl");

URL url2
  • Odpowiedz
@Eoghan: Ok, przyznaje. Kompletnie nie znam się na sieciach a CNAME w ogole zle zrozumialem. Ale sens posta (hashCode, equals w URL) zachowany i to jest najwazniejsze.
  • Odpowiedz