首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试Java Bean是否具有PropertyChangeSupport

测试Java Bean是否具有PropertyChangeSupport
EN

Stack Overflow用户
提问于 2012-05-23 01:14:34
回答 2查看 376关注 0票数 0

是否有标准或最佳实践方法来了解POJO (Plain Old Java Object)是否具有PropertyChangeSupport?

EN

回答 2

Stack Overflow用户

发布于 2014-01-16 03:36:16

是否有标准或最佳实践方法来了解POJO (Plain Old Java Object)是否具有PropertyChangeSupport?

PropertyChangeSupport类通常用于实现bean类中的属性更改支持,因此我怀疑您真正想知道的是是否有一种方法可以查看bean类是否支持注册PropertyChangeListeners

以下面的示例bean类为例:

代码语言:javascript
复制
class Bean {

    private String name;
    private final PropertyChangeSupport pcs = new PropertyChangeSupport(this);

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        String oldName = this.getName();
        this.name = name;
        this.pcs.firePropertyChange("name", oldName, name);
    }

    public void addPropertyChangeListener(PropertyChangeListener listener) {
        this.pcs.addPropertyChangeListener(listener);
    }

    public void removePropertyChangeListener(PropertyChangeListener listener) {
        this.pcs.removePropertyChangeListener(listener);
    }
}

您可以使用Introspector类来查询bean,并确定它是否提供属性更改侦听器的注册,例如:

代码语言:javascript
复制
boolean supportsPropertyChangeListener = false;

BeanInfo info = Introspector.getBeanInfo(Bean.class);
EventSetDescriptor[] descriptors = info.getEventSetDescriptors();

for (EventSetDescriptor descriptor : descriptors) {
    if (descriptor.getListenerType().equals(PropertyChangeListener.class)) {
        supportsPropertyChangeListener = true;
    }
}

System.out.println(supportsPropertyChangeListener);
票数 1
EN

Stack Overflow用户

发布于 2012-05-23 01:21:07

我想不出一种标准的方法,但一种方法是使用反射并迭代您的类的属性,看看是否有PropertyChangeSupport类型。

例如:

代码语言:javascript
复制
Field[] fields = clazz.getDeclaredFields();

for(Field field : fields) {
   if(field. getType().equals(PropertyChangeSupport.class)) {
      //do whatever you have to do
   }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10706833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档