Java中的Bean包中的几个类

如题所述

第1个回答  2018-08-09
以下几个类几乎都能通过代码直接写到Bean里面,但是这样的话就固定了BeanInfo,而以下几个类的巧妙之处就在于可以在不改动Bean本身属性的前提下动态的为Bean添加响应的属性。
BeanInfo把一个类看着一个标准Bean。可以获得各个属性的属性形容器来对Bean的属性进行操作。通过Introspector.getBeanInfo(Class<?> beanClass)来实例化
PropertyDescriptor属性形容器,包含着对Bean中属性的相关操作操作。可以通过BeanInfo.getBeanInfo获取或者通过new来实例化.

PropertyChangeListener属性改变监听事件,PropertyChangeSupport绑定Bean和监听器具体操作。通过实现propertyChange方法来自定义自己的操作。通过PropertyChangeSupport的firePropertyChange方法来触发所有监听事件,知道注意的是如果你要在Bean里面封装PropertyChangeSupport通过写方法暴露
监听器的addPropertyChangeListener方法时最好方法名还用addPropertyChangeListener,因为属性描述器的构造方法通过检查Bean里面是否有addPropertyChangeListener方法来判定是否支持绑定属性改变事件(isBound)。

VetoableChangeListener校验监听,有事件监听的使用方法相似,通过VetoableChangeSupport来绑定。通过实现vetoableChange方法来自定义自己的校验。VetoableChangeSupport提供了专门的PropertyVetoException来定义这个校验失败时间应该抛出异常。

实现PropertyEditor接口需要实现12个方法有时间显得过于复杂,可以通过通过继承PropertyEditorSupport并重写setValue或者getValue来是来自定义属性编辑器。
相似回答
大家正在搜