用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() );
}
}
也就是说对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() );
}
}
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是局部变量。你两次负值,第一次有什么用呢?
我知道原因了,vector取出来的是对象的副本,
当给他赋值时,他的副本的指针指到了 其它的对象,
但对他本身没有影响。但如何修改 vector中对象的值呢?
vector要逃汰了