JavaBeans i mechanizm refleksji

0

Dlaczego JavaBeansy musza miec zdefiniowany konstruktor defaultowy (bezargumentowy)? Przeczytalam, ze jest to zwiazane z mechanizmem refleksji, ale co konkretnie powoduje taki przymus?
Prosze o nieco dokladniejsza odpowiedz :)

0

Pomyśl. Jak masz stworzyć nowy obiekt, gdy nie wiesz czego wymaga od ciebie konstruktor?

0

Ja wlasnie chcialabym miec mozliwosc wywolania konstruktora z argumentami. Np przy uzyciu znacznika <jsp:useBean .../>. Dlaczego to nie jest mozliwe? (a moze jest, tylko ja sie nie dogrzebalam odp. informacji?)

0
  1. Kompilator nie zna twoich intencji używania "ziaren". Ponieważ dopuszczalna jest składnia
    <jsp:useBean id="Kotek" class="zoo.ssaki.ulubione.Kot" />, to musi być dostępny konstruktor
    bezargumentowy.
  2. Zamiast konstruktora z argumentami należy użyć "setterów":
    <jsp:useBean id="Kotek" class="zoo.ssaki.ulubione.Kot">
    <jsp:setProperty property="name" value="Mruczek">
    <jsp:useBean />
    W klasie Kot musi być metoda public void setName(String s){..}
0

Akurat mialam taki przypadek, ze fasolke wypadaloby zainicjalizowac w konstruktorze (wartoscia zalezna od danych w obiekcie Request). Inicjalizacja ta nie polega na wypelnieniu jednego propertiesa, ale calego beana. Jednak zrobilam sciemniarskiego 'settera', ktory wlasnie wykonuje ta inicjalizacje. A pytanie bylo dla uzupelnienia wiedzy.

Tak, czy siak dzieki za odpowiedzi :)

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