0

我收到此错误,但不知道如何解决。我已经阅读了该帖子,但仍然感到困惑。我试图运行 Xlint File.java 但它不工作。运行此代码时,我收到类似的味精

“VectorTest.java 使用未经检查或不安全的操作

重新编译 -Xlint:unchecked for details"

import java.util.Vector;
import java.util.Enumeration;

public class VectorTest
{
  public static void main(String args[])
  {

       Vector v=new Vector(3,4);
       System.out.println("Initial size"+ v.size());
       System.out.println("Initial capacity"+ v.capacity());
       v.addElement(new Integer(1));
       v.addElement(new Float(2.5));
       v.addElement(new Double(3.45));
       v.addElement(new Integer(4));
       v.addElement(new Integer(5));
       System.out.println("Current Capacity"+ v.capacity());

       v.addElement(new Integer(6));
       v.addElement(new Integer(7));
       v.addElement(new Integer(8));
       v.addElement(new Integer(9));
       v.addElement(new Integer(10));
       v.addElement(new Integer(11));
       v.addElement(new Integer(12));
       System.out.println("Current Capacity"+ v.capacity());
       System.out.println("First element"+(Integer) v.firstElement());
       System.out.println("Last element"+(Integer)v.lastElement());
       Enumeration e;
       e= v.elements();
       while(e.hasMoreElements())
       {
          System.out.println("All elements"+ e.nextElement());
       }
    }
 }
4

2 回答 2

2

该类Vector是通用的;您应该指定它包含的对象的类型。在您的情况下,您似乎应该将其声明为包含Objector Number(两者都是您似乎要添加的所有内容的超类):

Vector<Number> v = new Vector<>(3,4); // or new Vector<Number>(3,4) if pre-Java 7

然后警告应该消失。

顺便说一句,最好使用构造Integer.valueOf(1)等而不是new Integer(1). 它允许重复使用Integer可能被缓存的对象,从而减少内存使用。

于 2013-07-03T06:21:03.113 回答
1

您缺少泛型类型。您可以将您的 Vector 声明为

Vector<Number> v = new Vector<Number>(3, 4);
于 2013-07-03T06:21:51.637 回答