用Enumeration和Iterator枚举出来的对象和Vector中的对象不是同一个对象,
也就是说对Enumeration和Iterator枚举出的对象的修改不会引起Vector中对象的修改。
如果你要这样做应该没什么问题了:
    public void  propertyoverride(Vector a, Object b)
     {
       for (int i = 0; i < a.size(); i ++)
       {
         Object d = a.get(i) ;
           d= b;
          System.out.println("asdffffffffffff"+d.getvalue() );
       }
       
       for (Enumeration e = a.value.elements() ;e.hasMoreElements() ;)
          {
            object d = (CompositeProperty)e.nextElement() ;
         System.out.println(d.getvalue() );
          }

解决方案 »

  1.   

    不要用Enumeration,用Iterator吧。
      

  2.   

    4,3没错呀。
    for (Enumeration e = a.value.elements() ;e.hasMoreElements() ;)
    {
         Object d = (Object)e.nextElement() ;
         d= b;
         System.out.println("asdffffffffffff"+d.getvalue() );
    }
    上面的代码等价于:
    Object d = b;
    System.out.println("asdffffffffffff"+d.getvalue() );d是局部变量。你两次负值,第一次有什么用呢?
      

  3.   

    安照wanglh2000()  不行,
    我知道原因了,vector取出来的是对象的副本,
    当给他赋值时,他的副本的指针指到了 其它的对象,
    但对他本身没有影响。但如何修改 vector中对象的值呢?
      

  4.   

    使用arraylist吧
    vector要逃汰了