本帖最后由 Tennosu 于 2011-09-25 11:38:08 编辑

解决方案 »

  1.   

    Test类在init方法 时候admin这个变量没有被实例化import java.io.*;
    import java.util.*;public class Test
    {
        Admin admin; //实例化管理员类-----这样只是声明,根本没有实例化    public static void main(String[] args) throws Exception
        {
            Scanner scan = new Scanner(System.in);
            Test test = new Test();
            test.initAdmin();
        }
        public void initAdmin()
        {
            admin=new Admin();//这里实例化
            admin.adList.add(new Admin("Rin","admin","admin"));
        }
    }
    public class Admin extends User
    {
        ArrayList adList = new ArrayList();
        //ArrayList adList = null;    public Admin(){}
        
        public Admin(String adID, String adPwd, String uType)
        {
            //adList = new ArrayList();
            this.userID = adID;
            this.userPassword = adPwd;
            this.userType = uType;
        }
    }
      

  2.   

    import java.util.ArrayList;
    import java.util.Scanner;public class Test {
        Admin admin; //实例化管理员类    public static void main(String[] args) throws ClassNotFoundException {//把NotFoundException 改为 ClassNotFoundException
    Scanner scan = new Scanner(System.in);
    Test test = new Test();
    test.initAdmin();
        }    public void initAdmin() {
    admin.adList.add(new Admin("Rin", "admin", "admin"));
        }
    }//----------------------------------
    //用来创建存储Admin信息的Admin类
    class Admin extends User {
       public static  ArrayList adList = new ArrayList();//前面添加一个public static    //ArrayList adList = null;
        public Admin(String adID, String adPwd, String uType) {
    //adList = new ArrayList();
    this.userID = adID;
    this.userPassword = adPwd;
    this.userType = uType;
        }
    }//------------------------------------------
    //Admin继承的User类
    abstract class User {
        public String userID;
        public String userPassword;
        public String userType;}
      

  3.   

    感谢楼上两位大大,不过一楼的方法用过后还是会报错:
    Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - constructor Admin in class test.Admin cannot be applied to given types;
      required: java.lang.String,java.lang.String,java.lang.String
      found: no arguments
      reason: actual and formal argument lists differ in length然后,为什么像二楼那样加一个public static就可以了呢...
    然后,加了这个声明后,如果以后再程序中想往adList中添加元素是不是可以呢?
      

  4.   

    你也太弱了吧,你就不知道import Admin这个类?CSDN上完全不懂Java的人太多,实在无语,你们这个水平只能给你们“喂食”稍微遇到一点问题就不懂自己解决,给你贴出来你只需要复制粘贴的代码别说我代码有问题,是你不自己import,这次直接使用default的class写在一个Java里面
    import java.io.*;
    import java.util.*;public class Test11
    {
        Admin admin; //实例化管理员类    public static void main(String[] args) throws Exception
        {
            Scanner scan = new Scanner(System.in);
            Test11 test = new Test11();
            test.initAdmin();
               }
        public void initAdmin()
        {
            admin=new Admin();
            admin.adList.add(new Admin("Rin","admin","admin"));
        }
    }class Admin extends User
    {
        ArrayList adList = new ArrayList();
        //ArrayList adList = null;    public Admin(){}    public Admin(String adID, String adPwd, String uType)
        {
            //adList = new ArrayList();
            this.userID = adID;
            this.userPassword = adPwd;
            this.userType = uType;
        }
    }
    abstract class User
    {
        public String userID;
        public String userPassword;
        public String userType;}
      

  5.   

    一.如果按你的源程序来说, Admin admin; //实例化管理员类.这句代码没有创建Admin类的对象,它的ArrayList类成员变量list自然也没有得到实例化,所以在add元素的时候会报空指针错误.二.1楼的方法中是没有错的,在调用initAdmin()方法时进行了Admin对象的实例化.整个代码可以运行.
    只不过他贴出来的代码中少了User类.可能是这个原因吧.三.2楼的方法也很好,将ArrayList类成员变量list设为静态的,这样不需要Admin对象实例化,这个list也存在了(静态成员变量在使用这个类的时候就被创建了).所以后面的add方法得以执行.
    不过admin.adlist最好改成Admin.adlist.因为静态成员变量一般由类名调用,而不是由对象调用.
      

  6.   

    Exception in thread "main" java.lang.NullPointerException:一看就知道是没得创建对象的。
     Admin admin 只是创建一个引用 ,没得开辟空间的。
      

  7.   

    debug跟下,空指针是比较好找的
      

  8.   

    你是没有定义默认的构造函数吧,因为你显式的定义了有参数的构造函数,而你在初始化Admin的时候是用的默认的构造函数(无参的),所以一样会报错。