Wpis z mikrobloga

#programowanie #java jaką macie konwencję inicjalizowania list będacych polami? Robicie:

private List objectList = new ArrayList<>();

czy

private List objectList;
i w konstruktorze
objectList = new ArrayList<>();

?
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@ppawel: dla mnie zawsze naturalne i czytelne było inicjalizowanie pól w konstruktorze, ale jak przeglądałem ostatnio repo androidowców to zauważyłem, że wszyscy korzystają z pierwszej wersji, więc postanowiłem się zapytać mireczków jak oni robią bo jak wiadomo mirko jest zbiorem najlepszych ekspertów w internecie ;)
  • Odpowiedz
@htfhere: kurczę, a dla mnie czyściejsze jest ustawienie wartości od razu w deklaracji, bo czasem nawet nie trzeba deklarować swojego konstruktora, więc na dzień dobry jest parę linii kodu mniej.

Oczywiście zakładam że nie ma jakiś potem jakiś wyjątków w innych konstruktorach, bo wtedy byłoby to trochę niespójne.
  • Odpowiedz
@taked: Wziąłem się za robienie projektu w javie bo moje dotychczasowe doświadczenie komercyjne obejmowało w 90% javę. Czy mógłbyś w skrócie wypisać najważniejsze plusy przerzucenia się na kotlina?
  • Odpowiedz
@kaervek: Tak, albo fabryka fabryk do tworzenia list. Ja p------ę.

@ppawel: Jeśli nie przekazujesz do konstruktora żadnego parametru który by w jakiś sposób wpływał na utworzenie tej listy to powinno być to zwykłe przypisanie przy deklaracji - szczególnie jeśli pozwoli to usunąć zbędny konstruktor.
  • Odpowiedz
@Myzrael: rozumiem, ze pracujesz z danymi, ktore maja piec wpisow na krzyz i wszystko w---------z jako eager, a dopisanie jednego ifa na getterze porownujesz do fabryki fabryk xD
  • Odpowiedz
Tak, albo fabryka fabryk do tworzenia list. Ja p------ę.


@Myzreal: A potem się pracuje z takim chujem co to myśli, że robi uber optymalizacje i wszędzie trzeba j---ć tonę ifów, żeby sprawdzać czy kolekcja/tablica jest nullem.
  • Odpowiedz
@kaervek: Nie k---a, po prostu umiem czytać i widzę o co OP pyta. A pyta o to czy wolimy inicjalizować listę będącą polem przy deklaracji czy w konstruktorze. A ty tu z jakimś lazy loadingiem k---a wyskakujesz, po c--j? Chcesz błysnąć że znasz takie super pojęcia?
  • Odpowiedz