Obiekt[0]

0

hej,
mam do Was pytanie z teorii. w sumie pewnie ten watek nadaje sie do przedszkola, ale sprobuje tu. Przyklad:
mam klase TestBean:

public class TestBean{
 private int id;
 private String value;

   public int getId() {
      return id;
   }

   public void setId(int id) {
      this.id = id;
   }

   public String getValue() {
      return value;
   }

   public void setValue(String value) {
      this.value = value;
   }

}

potem mam gdzies metoda ktora ma mi zwrocic tablice obiektow typu TestBean. ale jesli nic w niej nie ma to..:

  return(testBeans == null ? new TestBean[0] : testBeans);

jesli tetsBeans jest nullem to ma zwrocic

new TestBean[0]

i tego wlasnie nie rozumiem. czym jest TestBean[0]? Pusty obiekt typu TestBean ale nie null? a czy nie powinno to byc TestBean[1] z nieustawionymi wartosciami id i value? czym jest tablica o rozmiarze=0?

       pozdrawiam,
            misty

0

To jest tablica obiektow TestBean, ktora ma dlugosc zero, czyli jest calkowicie pusta. To co innego niz jeden TestBean z wszystkich ustawionym na null.

0

ktora ma dlugosc zero, ale nie jest nullem. czyli tak jak String s = new String() nie jest nullem ale tez nic nie ma w srodku.

dzieki

0

Nie. new String() nie jest pusty, reprezentuje "". Poza tym tutja mowa o pojedynczym obiekcie, a Twoj kod mowi o sekwencji obiektow (w tym przypadku tablicy).
Kod ktory pokazalas jest wlasciwie implementacja wzorca Null Ojbect - nie zwracasz nulla bo ten kto odbiera ta wartosc musialby sprawdzac czy jest null - brzydki kod. Ty natomiast zwracasz pusta tablice, po ktorej da sie iterowac, ale zadna iteracja nie zostanie wykonana. W JavaDocu wspominasz ze metoda nie zwraca nigdy null, i klient tego API juz nie musi sie martwic o test == null, kod jest ladniejszy prostszy latwiej da sie testowac itp itd.

0

aha. czyli 'ubrany' null ktory nie rzuci NullPointerException.

rozumiem, dzieki jeszcze raz!

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