yangfion171 2008-09-12 16:43
浏览 631
已采纳

如果监视一个对象的属性变化,并触发一段代码

Hi

问题是关于如何监视一个对象的属性状态变化

就好比在 ServletContextAttributeListener 一样
当 ServletContext 属性发生变化时,会触发一段 代码的执行

我想明白的就是 如果做,才能 监视自己写的对象,并在其 指定属性发生变化时,出发一段代码呢?
请各位赐教下,小弟在此感激不尽

  • 写回答

3条回答 默认 最新

  • iteye_2718 2008-09-12 17:38
    关注

    监控属性变化,可以使用Observer模式,Java本身提供对这种模式的支持,你按下面的例子看一下:
    ///你需要临视的Bean
    package com.test;
    import java.util.Observable;
    public class Product extends Observable{
    private String name;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
                  ///下面两段代码用于监控
        setChanged();
        notifyObservers(name);
    }
    

    }
    ///监控者
    package com.test;
    import java.util.Observable;
    import java.util.Observer;
    public class NameObserver implements Observer{
    private String name=null;
    public void update(Observable obj, Object arg) {
    if(arg instanceof String){
    name=(String)arg;
    System.out.println("名字有变化");
    }
    }

    ///main用于测试

    public static void main(String[] str){
    NameObserver nameObserver=new NameObserver();
    Product product=new Product();
    product.addObserver(nameObserver);
    //
    product.setName("ccc");

    }

    }
    当然了你还可以使用代理或spring aop的切面编程来做 :)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 用hfss做微带贴片阵列天线的时候分析设置有问题
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答