有这么个小程序:
import java.util.*;public class Test {
public static void main(String[] args) {
Collection c = ArrayList();
c.add(new String("today"));
c.add(new Integer(100));
System.out.println(c);
}
}
在编译的时候,出现以下提示:E:\>javac Test.java
注意: Test.java 使用了未经检查或不安全的操作。
注意: 要了解详细信息,请使用 -Xlint:unchecked 重新编译。E:\>
我使用-Xlint:unchecked重新编译后,又出现以下提示:E:\>javac Test.java -Xlint:unchecked
Test.java:6: 警告: [unchecked] 对作为普通类型 java.util.Collection 的成员的 add
(E) 的调用未经检查
try {c.add(new String("today"));
^
Test.java:7: 警告: [unchecked] 对作为普通类型 java.util.Collection 的成员的 add
(E) 的调用未经检查
c.add(new Integer(100));
^
2 警告E:\>但是我不知道该如何对这2个add的成员进行检测.知道的高手帮忙解答下,谢谢了.
import java.util.*;public class Test {
public static void main(String[] args) {
Collection c = ArrayList();
c.add(new String("today"));
c.add(new Integer(100));
System.out.println(c);
}
}
在编译的时候,出现以下提示:E:\>javac Test.java
注意: Test.java 使用了未经检查或不安全的操作。
注意: 要了解详细信息,请使用 -Xlint:unchecked 重新编译。E:\>
我使用-Xlint:unchecked重新编译后,又出现以下提示:E:\>javac Test.java -Xlint:unchecked
Test.java:6: 警告: [unchecked] 对作为普通类型 java.util.Collection 的成员的 add
(E) 的调用未经检查
try {c.add(new String("today"));
^
Test.java:7: 警告: [unchecked] 对作为普通类型 java.util.Collection 的成员的 add
(E) 的调用未经检查
c.add(new Integer(100));
^
2 警告E:\>但是我不知道该如何对这2个add的成员进行检测.知道的高手帮忙解答下,谢谢了.
import java.util.*; public class TestCollection {
public static void main(String[] args) {
List c = new ArrayList();
c.add(new String("today"));
c.add(new Integer(100));
System.out.println(c);
}
}
Collection c = new ArrayList();
不会报错吗?
(2)是泛型的问题,虽然插入的是Object,但是如果你按下面这样的代码去编译就不会出错import java.util.*;public class Test {
public static void main(String[] args) {
Collection<Object> c = new ArrayList<Object>();
c.add(new String("today"));
c.add(new Integer("100"));
System.out.println(c);
}
}这要求我们平时用到Collection集合的时候最好用到泛型。一是插入的时候防止插入的是其他的类型,二是在取出的时候不用强制转化,要不取出的只是Object类型。