我想将一些整数放入Vector并在此之后访问它们。 我在Java Eclipse剪贴簿中的代码如下所示:
java.util.Vector<> dp;
dp = new java.util.Vector(5);
dp.insertElementAt(new Integer(1));
dp.insertElementAt(new Integer(3));
for(int i =0; i< dp.size(); i++)
{
int lastint = ((Number) dp.lastElement()).intValue();
System.out.println("Element" + lastint);
}
我收到此错误:“类型为Vector的参数数量不正确;无法使用参数&lt;&gt;参数化”但是我在教程中做到了,所以我不知道为什么会这样。
答案 0 :(得分:3)
您必须声明要在Vector中存储的元素的类型:
Vector<Integer> dp = new Vector<Integer>(5);
在Java 7中,您可以使用Diamond语法:
Vector<Integer> dp = new Vector<>(5);
但请记住,<>
语法只能用于实现而不是引用。
顺便说一下,你不应该使用Vector
类,它已经过时了。
如果您不需要线程安全,可以使用ArrayList
;如果需要,可以使用CopyOnWriteArrayList
(或Collections.synchronizedList()
)。
答案 1 :(得分:0)
替换此行
java.util.Vector<> dp;
有了这个:
java.util.Vector<Integer> dp;
定义新变量时,不能将<>
留空。编译器必须知道它将使用哪个calss。
答案 2 :(得分:0)
一堆问题。你应该写:
java.util.Vector<Integer> dp;
宣布矢量时。您可以使用
进行初始化dp = new java.util.Vector<>(5);
如果您使用Java 7或更高版本。否则:
dp = new java.util.Vector<Integer>(5);
此外:
dp.insertElementAt(new Integer(1));
insertElementAt需要两个参数,即要插入的索引和实际值。但要小心!您创建了容量为5而不是大小为5的向量。因此除 insertElementAt(someValue,0)之外的任何内容都将抛出 ArrayIndexOutOfBoundsException 。请参阅链接的javadoc以了解确切的行为。
答案 3 :(得分:0)
这是您在Java 5.0(2004)或更高版本中编写它的方法。
List<Integer> db = new ArrayList<Integer>();
db.add(1);
db.add(3);
for(int i : db)
System.out.println("Element" + i);
你可以看到这个更清洁,自Java 7(2011)以来你可以写
List<Integer> db = new ArrayList<>();
Vector类型的参数数量不正确;它不能使用参数&lt;&gt;
进行参数化
如果您的IDE设置为Java 1.4或更早版本,则会发生这种情况。如果您有一个非常古老的JDK(超过十年),您也会收到此错误。尽量确保您拥有最新版本的Java,例如Java 8更新5并将IDE设置为期望Java 8代码。