Java导入语句

我在debian 5上使用 java

java version “1.6.0_20”
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) Client VM (build 16.3-b01,mixed mode,sharing)

为什么在以下之间有区别?

情况1:

import java.util.*;

情况2:

import java.util.*;
import java.util.Arrays;
import java.util.List;

为什么第一种情况不包括第二种情况?

当我明确导入数组和列表时,代码只会编译.

码:

import java.util.*;
import java.util.Arrays;
import java.util.List;

public class Test {
        public static void main (String[] args) {
                List<Integer> i = new ArrayList(Arrays.asList(1,2,3,4,5,6,7,8,9,10));
                List<Integer> j = new ArrayList();
                ListIterator<Integer> n = i.listIterator(i.size());

                while(n.hasPrevIoUs()) {
                        j.add(n.prevIoUs());
                }

                println(j);

        }

        static void println(Object o) {
                System.out.println(o);
        }

        static void print(Object o) {
                System.out.print(o);
        }

}

当我注释第二和第三个import语句时,我得到的错误是:

nattyp@debian:~/dev/java$javac Test.java
Test.java:7: cannot find symbol
symbol  : method asList(int,int,int)
location: class Arrays
                List<Integer> i = new ArrayList(Arrays.asList(1,10));
                                                      ^
Note: Test.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error
nattyp@debian:~/dev/java$

解决方法

我只是编译它,它编译没有隐式导入,可能你看到一个陈旧的缓存或你的IDE的东西.

你是否尝试从命令行编译?

我有完全相同的版本:

可能你在想这个警告是一个错误.

UPDATE

看起来您正在尝试编译的目录(可能之前创建)中有一个Arrays.class文件.这就是为什么显式导入解决了这个问题.尝试将源代码复制到一个干净的新目录,然后重试.你会看到这次没有错误.或者,清理您的工作目录并删除Arrays.class

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...