VetorTest.java使用未经检查和不安全的操作,并出现-Xlint错误

时间:2013-07-03 06:16:44

标签: java vector

我收到此错误但不知道如何解决它。我已经通过了帖子但仍然感到困惑。 我试图运行Xlint File.java但它不起作用。 在运行此代码时,我正在获取msg,如

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

使用-Xlint重新编译:取消选中以获取详细信息“

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());
       }
    }
 }

2 个答案:

答案 0 :(得分:2)

Vector类是通用的;你应该指定它包含的对象的类型。在您的情况下,看起来您应该声明它包含ObjectNumber(这两者都是您似乎要添加的所有内容的超类):

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

警告应该消失。

另外,最好使用构造Integer.valueOf(1)等代替new Integer(1)。它允许重用可能被缓存的Integer个对象,减少内存使用。

答案 1 :(得分:1)

你错过了泛型类型。 您可以将Vector声明为

Vector<Number> v = new Vector<Number>(3, 4);