我写了以下java代码:
public static void main(String[] args) {
Vector vector = new Vector();
for(int i=1; i<=10; i++)
vector.addElement(i);
Enumeration vEnum = vector.elements();
while(vEnum.hasMoreElements())
System.out.println(vEnum.nextElement());
}
在编译它时会收到以下警告消息:
Note: TestJavaApplication.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Netbeans抱怨“过时收藏”的消息.
在这种情况下,你推荐我什么?
注意,我需要在J2ME应用程序中使用Vector作为存储元素顺序的动态数组.我很乐意使用Hashtable但不幸的是它不存储其元素的顺序.
编辑1
在审查了this answer之后,我从Vector vector = new Vector()更改了声明;到Vector< String> vector = new Vector< String>();.现在又收到另一条警告信息:
TestJavaApplication.java:2: warning: com.sun.org.apache.xerces.internal.parsers.IntegratedParserConfiguration is Sun proprietary API and may be removed in a future release
import com.sun.org.apache.xerces.internal.parsers.IntegratedParserConfiguration;
^
谢谢.
解决方法:
您看到的关于“未检查或不安全操作”的警告是因为Vector是参数化类型.它实际上是Vector< E>,你应该在使用Vector时提供一个类型参数.如果您使用“原始”Vector,那么您将无法获得Java的泛型框架的任何优势. “不安全”警告意味着您错过了某种类型的安全性.
“过时类型”警告就在那里,因为Vector已经(基本上)不赞成使用List及其实现(ArrayList和LinkedList等).
各种List类型是Vector的通用替换. ArrayList可以用作Vector的一个或多或少的替代品,但是你应该注意一些差异.阅读javadocs以获取更多信息.
最重要的区别是Vector是线程安全的,但ArrayList和LinkedList不是.如果您依赖于Vectors内置线程安全性,那么您应该查看Collections.synchronizedList方法.
编辑:哦,你正在使用JavaME.在这种情况下,你可能会遇到Vector.然而,通用类型警告仍然适用.
如果您愿意,可以忽略警告.他们在那里告诉你,如果你不小心可能会有问题,但如果你小心,那你就没事了.
标签:java,vector,java-me
来源: https://codeday.me/bug/20190723/1511164.html