import net.tantan.simple.*;
public class LibTest{
    public static void main(String[] args){
      //Vector v=new Vector();
      //net.tantan.simple.Vector v=new net.tantan.simple.Vector();
      List l=new List();
 }
}当我以上面的代码编译时系统提示错误:

C:\java\javac LibTest.java
LibTest.java:7: 无法访问 List
错误的类文件: .\List.java
文件不包含类 List
请删除该文件或确保该文件位于正确的类路径子目录中。
      List l=new List();
      ^
1 错误

我的CLASSPATH路径也设置了的!CLASSPATH:.;C:\java
当我把上面的代码修改成:import net.tantan.simple.List;
public class LibTest{
    public static void main(String[] args){
      //Vector v=new Vector();
      //net.tantan.simple.Vector v=new net.tantan.simple.Vector();
      List l=new List();
 }
}又能成功编译并运行!不知道问题出在哪儿????望贵人指点!

解决方案 »

  1.   

    List是abstract类,怎么能直接new呢??
    一般是用arraylist或者其他的list的子类
      

  2.   

    List是接口!!!List l=new List();
    这条语句有问题,List是接口,不可能被实例化的。
    一般接口是要来组织类的,我们可以声明接口的引用来指向实现接口的类的对象,用来同一管理一系列对象。
    如果不用泛型,可以用ArrayList类来创建对象,再将这个对象的引用赋给接口的引用,如果你不用泛型的话
    可以这么改:List l = new ArrayList();建议楼主看下java编程思想“向上转型”跟“持有对象”这两章知识。
      

  3.   

    List是接口!!!List l=new List();这条语句有问题,List本身是接口,不可能被实例化的。
    一般接口是要来组织类的,我们可以声明接口的引用来指向实现接口的类的对象,用来同一管理一系列对象。
    如果不用泛型,可以用ArrayList类或者LinkList来创建对象,再将这个对象的引用赋给接口的引用,如果你不用泛型的话
    可以这么改:List l = new ArrayList(); 或者List l= new LinkList();
      

  4.   

    建议楼主看一下net.tantan.simple包和net.tantan.simple.List类,你不是不懂以上各楼说的这些知识,只是忽视了net.tantan.simple包和net.tantan.simple.List类的一些东西。
      

  5.   

    net.tantan.simple包和net.tantan.simple.List类的学习不够
      

  6.   

    list有又分arraylist和linkedlist在底层分别是以数组和链表实现的,前者都快改慢而后者则该快读慢,在设计时,要考虑到效率问题
      

  7.   

    楼上的都不看问题的么?
    怎么就那么肯定别人用list就是java.util里的?
    别人用的是net.tantan.simple.List;
    搂主的问题我觉得不是程序写法的问题。你换个环境试试呢?例如用eclipse换成在命令行下编译
      

  8.   

    感谢10楼的阿蒙,终于有人注意到我用的是:net.tantan.simple.*;而不是 java.util.*
    但问题还是没能解决,我一直都在DOS命令下编译,所以我想多半不是编译环境的问题,估计是环境置制的问题,可我还是找不出问题所在????
      

  9.   


    老大?不是吧?List是接口吧?List是继承Collection接口的,怎么会是抽象[abstract]类呢?
      

  10.   

    List是接口,不能直接new,用它的实现类arraylist就可以了List list = new ArrayList();
      

  11.   

    是不是net.tantan.simple下面不只是有一个List,所以必须指定全包名,否则不认识是那个.
      

  12.   

    List 是一个接口,不能直接实例化一个接口,
    但可以实例化一个子类,然后向上转型为list 接口
      

  13.   

    我想也应该不是那个问题,因为net.tantan.simple下面一个类文件!
      

  14.   

    list 是接口,实现这个接口的有,arrayList 和 linkedList
    可以这样来用List l = new ArrayList();
    接口不能直接实例化,只能new 出实现他的类~