写一个方法
private void fireChange(Event changeEvent){
//遍历listeners
}然后setProperty方法内部调用这个方法。

解决方案 »

  1.   

    chanceqw(★★★★★) :我现在就是这样做的.这也是sun的方法,但是每个setProperty都要调用这个方法,觉得很繁琐
      

  2.   

    自己写个ClassLoader,当Method名是set开头时,就触发事件
      

  3.   

    chanceqw(★★★★★) :ClassLoader写个会不会太复杂了,不懂啊,能不能给个HELLOWORLD
    我后来试了下动态代理,对所有的调用函数在invoke中进行处理, 比如javabean:
    public class AAA implements A {
        private AAA() {
        }
        public static A getInstance() {
            A t = new AAA();
            InvocationHandler handler = new SetHandler(t);
            A proxy = (A) Proxy.newProxyInstance(t.getClass().getClassLoader(), t
                    .getClass().getInterfaces(), handler);
            return proxy;
        }
        public void getName() {
        }}但这样的话好像只能返回一个接口,而这个接口不能cast成AAA,所以根本不能调用getName(),当然,这个方法在A中没有定义.
    A proxy = (A) Proxy.newProxyInstance(t.getClass().getClassLoader(), t
                    .getClass().getInterfaces(), handler);
    这句中只能用接口来cast.不熟悉动态代理,这样的话,局限性不是很大?
      

  4.   

    有的做法好像是用比如getAttribute("name", sdf)来取代getName(),建立一个hashmap,好像还比较可行