java Vector:添加对象时发出警告

发布于 2024-09-06 04:46:29 字数 191 浏览 2 评论 0原文

当我将 String 对象添加到向量中时,会出现以下警告。为什么?

TestCollectionsMain.java:14:警告:[未选中]未选中对 add(E) 的调用作为 原始类型 java.util.Vector 的成员 vec.add("M");

When I am adding a String object into a vector then the following warning occurs.Why?

TestCollectionsMain.java:14: warning: [unchecked] unchecked call to add(E) as a
member of the raw type java.util.Vector
vec.add("M");

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

娇纵 2024-09-13 04:46:29

这是因为您没有使用泛型来声明您的向量。

试试这个:

 List<String> vec = new ArrayList<String>();
 vec.add("M");

It's because you are not using Generics to declare your Vector.

Try this:

 List<String> vec = new ArrayList<String>();
 vec.add("M");
野鹿林 2024-09-13 04:46:29

如果您确实想这样做,则可以声明

Vector<String> vec = new Vector<String>();

或使用

@SuppressWarnings("unchecked") 

方法顶部的注释。 :-)

You can either declare

Vector<String> vec = new Vector<String>();

or, use the

@SuppressWarnings("unchecked") 

annotation at the top of your method if you really mean to do that. :-)

淡笑忘祈一世凡恋 2024-09-13 04:46:29

从 Java 1.5 开始,建议您使用这些方法的泛型版本。

如果您坚持使用原始类型,您可以安全地忽略该警告。

顺便说一句,您可能应该使用 ArrayList 而不是 Vector,它速度更快,而且基本相同。

这将运行,只需忽略警告即可。

public static void main( String [] args ) {
    Vector v = new Vector();
    v.add("M");
 }

这会更好:

public static void main( String [] args ) {
     List<String> v = new ArrayList<String>();
     v.add("M");
}

使用泛型会给你带来两个好处。

1)帮助您在编译时检查,添加到集合中的值是否属于同一类型。

2) 帮助您避免从集合中获取值时进行强制转换。

但是,这只是一个选项(没有编译器错误),如果您仍然想使用非通用版本,您可以自由地这样做,只需忽略异常,或者如 jskggz 所说,只需添加:

 @SuppressWarnings("unchecked") 
 public static void main(String[] args) {

到您的方法中。

Since Java 1.5 you're recommended to use the generic's version of those methods.

If you insist to use a raw type, you may safely ignore the warning.

BTW, you probably should use ArrayList instead of Vector it is a bit faster and does basically the same.

This will run, just ignore the warning.

public static void main( String [] args ) {
    Vector v = new Vector();
    v.add("M");
 }

This would be better:

public static void main( String [] args ) {
     List<String> v = new ArrayList<String>();
     v.add("M");
}

Using generics give you two benefits.

1) Helps you to check at compile time, the values added to the collection are of the same type.

2) Help you to avoid casting when getting the values out of the collection.

But, that's just an option ( no a compiler error ) if you still want to use the non-generic version, you're free to do it so, just ignore the exception, or as jskggz says, just add:

 @SuppressWarnings("unchecked") 
 public static void main(String[] args) {

To your method.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文