将其变为Static代码块,居然可以!是不是,集合类的对象,都必须在方法体里面!上面的代码,没用在方法体里面,直接在类的最前面用的。是不是就可以说:
                集合类的对象必须使用在Static块里,或方法体里面???

解决方案 »

  1.   

    楼主,你没有贴出完整的代码,仅仅只是个代码片段,很难帮你找出错误原因,但有几点改进希望对楼主有用:
    1、Vector是JDK早期版本的集合框架类,现在基本不用了,主要原因是因为它是线程安全的,同步方法,造成它的性能比较低,所以基本是使用LinkedList或者ArrayList等等取代。
    2、楼主代码的风格不好,泛型是保证类型安全的,一般都要建议在集合类上明确泛型类保证安全,所以正如楼上所说不加上虽然不会出错,但是加上确实一种好的习惯。Good Luck!
      

  2.   

    我觉得你这个好像没放到代码块或函数体中,而是直接放在了类中定义的。
    public class A{
           HashSet<String> hs = new HashSet<String> ();
           hs.add("hello");//该行就会出现上述你说的错误
    }
    一般在类体中非代码块中写就容易出现上述问题。还有现在一般都不用Vector了,常使用的是HashSet ,ArrayList 这些。还有就是写这个最好加上泛型,保障程序的安全性。