Wpis z mikrobloga

Java jest prosta, hę? To powiedzcie co się dzieje w tym kodzie.


kolejno:


porównanie obiektów


autoboxing ⟶ obiekty te same w zakresie [-128,127]


autoboxing nie działa dla konstruktora Integer


ale operator++ go wymusza, jeśli się da.


#programowanie #java #kq
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@goompas: Popieram. Zawsze się mądrulek na uczelni/rozmowie kwalifikacyjnej znajdzie co wymyśla takie pierdoły, a jakby mi w firmie taki kod napisali to jedno ostatnie ostrzeżenie i out.
  • Odpowiedz
@PunkT: Znajomość corner case'ów, a ich uƶywanie w kodzie to dwie kompletnie róƶne rzeczy. Zawsze lepiej rozumieć dlaczego się czegoś nie robi niƶ "wiedzieć, bo tak mówili".
  • Odpowiedz
@KrzaQ2: tak myślałem że to coś z autoboxingiem. Dzięki za kejsa, bo nawet nie zdawałem sobie sprawy że to może do takich konsekwencji prowadzić.

A i właśnie, może jakieś wnioski na koniec? :-)
  • Odpowiedz
@b0lec: Wniosków brak. Łatwo by było napisać, ƶe java sucks jeśli 50 czasem jest równe 50, a czasem nie, ale wytłumaczenie jest dość sensowne, a ze mnie ƶaden javowy specjalista. Ew. +1 do rzeczy, na które trzeba uwaƶać.
  • Odpowiedz
@KrzaQ2:

Przypisanie Integer a = 150, wywołuje autoboxing więc jest równoznaczne z Integer a = new Integer(150);

new Integer(150) tworzy nowy obiekt. Drugie utworzenie tworzy, drugi obiekt. Porównując obiekty typu Integer, porównujesz ich referencje. Skoro są to dwa różne obiekty, to te referencje są
  • Odpowiedz