Zdravím,
to je jakási prapodivná nedotaženost standardu. Třeba JGoodies Binding
proto má interface com.jgoodies.binding.beans.Observable, který má
tyto dvě metody:

 void   addPropertyChangeListener(PropertyChangeListener listener)
 void   removePropertyChangeListener(PropertyChangeListener listener)

Může se pak použít pro kontrolu v době kompilace (JGoodies Bnding
funguje i bez toho, že by Java Bean toto rozhraní implementoval --
používá reflexi, jako každý jiný kód, který registruje posluchače k
obecným JavaBeanům).

Podobně by mohlo existovat rozhraní třeba NamedObserver, které by
implementovalo příslušné metody s variantou registrace posluchače k
jedné property.

Proč takováhle dvě rozhraní nejsou součástí JDK resp. standardu
JavaBeans, je pro mne taky záhadou, ale nezbývá, než to přijmout jako
fakt (a věřit, že až se do Javy přidá nějaká *rozumná* podpora pro
properties, bude součástí i nějaký takový interface).

S pozdravem

Filip Jirsák

Dne 26. květen 2009 12:12 Tomas Hubalek <[email protected]> napsal(a):
> Zdar,
>
> stale mi vrta hlavou jedna vlastnosti javabeanu. Kdyz chci mit nejakou bound
> property musim (podle tutorialu Sunu) udelat tyto veci:
>
>    1. Import the java.beans package. This gives you access to the
> PropertyChangeSupport class.
>    2. Instantiate a PropertyChangeSupport object. This object maintains the
> property change listener list and fires property change events. You can also
> make your class a PropertyChangeSupport subclass.
>    3. Implement methods to maintain the property change listener list. Since
> a PropertyChangeSupport subclass implements these methods, you merely wrap
> calls to the property-change support object's methods.
>    4. Modify a property's set method to fire a property change event when
> the property is changed.
>
> Vsechno chapu, jedine co mi neni jasne je, proc neexistuje ve standardu
> nejaky takovyto interface:
>
> public interface BeanWithBoundProperties {
>    void addPropertyChangeListener(PropertyChangeListener listener);
>    void removePropertyChangeListener(PropertyChangeListener listener);
> }
>
> Nejpodobnejsi tomuto je interface java.beans.Customizer, ale ten se mi zda
> ze je pro jiny ucel.
>
> Jak potom nastroje, ktere dostanou obycejny Java Bean, mohou zjistit ze bean
> ma bound properties? Pres Reflection? To mi prijde ohavne.
>
> Diky za jakekoliv komentare (i takove ze jsem nekde neco prehledl jsou pro
> me cenne).
> Tom
>

Odpovedet emailem