这个地方可能是其他地方需要引用Collection类的对象。
所以这么定义。
你可以看一下设计模式中的build模式

解决方案 »

  1.   

    依赖倒转,推荐用Collection v =new Vector();
    比如常见的List list=new ArrayList();String是一个不变对象,对String的运算在内部要产生很多中间结果的,是一种代价如果申明一个不用改变的String,可以用它要作字符串运算,养成用StringBuffer好习惯。
      

  2.   

    这是Collection代码的典型写法,向上转型,可以看做是多态性的需要吧。
        字符串的直是不可改变的,一旦创建了String类对象,就不能在改变其直,引起字符串的属性和长度改变的操作,将会得到一个复制了原对象中所需部分的新String对象(java实现努力试图将同一个类中的同样的字符串和字符的直合并到一个共享的字符串池中)。
        StringBuffer类是一个为字符提供的可增大的缓冲区,他向缓冲区附加各种类型的数据,提供了大量的Append()方法的重载。
    例如以下例子:
      String testStr = "hello";
      testStr = testStr + " world";
      testStr = testStr + " how are you";
    这里用String回反复产生新的String对象,字符数组必须反复复制,着对性能回产生负面影响。若使用StringBuffer类则为更好:
      StringBuffer testStrBuff = new testStrBuff("hello");
      testStrBuff.append(" world");
      testStrBuff.append(" how are you");
      

  3.   

    关于类String和类StringBuffer:
    String对象自身是固定的,你可以在String对象上执行字符检索、提取子串(到另一个String)、大小写转换等操作,但是如果你要改变String的长度(增加或删除部分子串),你只有对此String
    对象重新赋值:
    String st="123";
    st=st+"456";
    它自身没有方法来实现对自身的(长度)更新StringBuffer适用于长度经常变化的字符串,它的方法和String有部分是一样的,但StringBuffer
    最常用的方法是 append()和insert(),来更新自身字符串长度
    StringBuffer st=new StringBuffer("123");
    st.append("456");对字符串运算来说,String可以提供更多的方法
    (类String有31种方法(SDK1.4),而StringBuffer只有18种)
    并不是用StringBuffer好还是String好的问题,而是在需要的地方分别使用他们,或配合起来使用
      

  4.   

    另外SUN的API参考中说:
    StringBuffer在多线程处理中是安全的,并发线程对StringBuffer对象就好象是多个单线程顺序执行一样